Zurück zum Inhalt

Reguläre Ausdrücke

Der Interpreter für Reguläre Ausdrücke basiert auf den Regulären Ausdrücken der ICU.

Beispiele für Suchen mit Regulären Ausdrücken:

  • Einen angehängten Punkt am Ende eines Lesezeichens finden: \.$
    Das \ wird benötigt, um den Punkt zu schützen, damit er als Punkt gewertet wird (anstelle des Punkt-Operators, der jedes Zeichen findet). $ legt fest, dass die Suche nur dann erfolgreich ist, wenn das Zeichen am Ende einer Zeile gefunden wird.
  • Ein angehängtes Rufzeichen am Ende eines Lesezeichens finden: !$
    Das Rufzeichen ! muss hier nicht geschützt werden, weil es keine spezielle Bedeutung als RegEx-Operaor hat. $ legt fest, dass die Suche nur dann erfolgreich ist, wenn das Zeichen am Ende einer Zeile gefunden wird.
  • Kapitel-/Absatznummerierungen wie z.B. "2.4.1.5" am Anfang eines Lesezeichen-Textes finden:
    ^[0-9]+\.?[0-9]?\.?[0-9]?\.?[0-9]?
    Dieser Ausdruck findet Nummerierungen bis zur vierten Hierarchiestufe. Das Zirkumflex-Zeichen ^ legt fest, dass die Suche nur dann erfolgreich ist, wenn das gesuchte Zeichen am Anfang der Zeile steht. [0-9] findet alle Ziffern von 0 bis 9. Das Pluszeichen + besagt, dass der gesuchte Ausdruck mindestens ein Mal gefunden werden muss. Das Fragezeichen ? besagt, dass der gesuchte Ausdruck kein Mal oder öfter gefunden werden muss. Der Backslash \ schließlich wird benutzt, um Zeichen wörtlich zu nehmen, die in regulären Ausdrücken ansonsten eine besondere Bedeutung haben, wie der Punkt.

Metazeichen für Reguläre Ausdrücke

Die nachfolgende Tabelle listet alle Metazeichen, die an den verschiedenen Stellen in PDF Nomad genutzt werden können, wo Reguläre Ausdrücke unterstützt werden.

CharacterDescription
\aFindet das Zeichen BELL, \u0007
\AFindet etwas am Anfang des Suchtextes. Im Unterschied zu ^ findet \A nichts nach einem Zeilenumbruch innerhalb des Suchtextes.
\b, außerhalb eines [Set]Gilt als Treffer, wenn die aktuelle Position eine Wort-Grenze ist. Wort-Grenzen treten an den Übergängen zwischen Wort- (\w) und Nicht-Wort-Zeichen (\W) auf, wobei Kombinationsmarken ignoriert werden.
\b, innerhalb eines [Set]Findet das Zeichen BACKSPACE, \u0008.
\BGilt als Treffer, wenn die aktuelle Position keine Wort-Grenze ist.
\cXFindet ein control-X-Zeichen.
\dFindet ein beliebiges Zeichen mit der "Unicode General Category" von Nd (Nummer, Dezimalziffer.)
\DFindet ein beliebiges Zeichen, das keine Dezimalziffer ist.
\eFindet das Zeichen ESCAPE, \u001B.
\EBeendet eine mit \Q ... \E geschützte Zeichenfolge.
\fFindet das Zeichen FORM FEED, \u000C.
\GGilt als Treffer, wenn die aktuelle Position am Ende des vorigen Treffers ist.
\nFindet das Zeichen LINE FEED, \u000A.
\N{UNICODE-ZEICHENNAME}Findet das benannte Zeichen.
\p{UNICODE-EIGENSCHAFTSNAME}Findet ein beliebiges Zeichen mit der angegebenen Unicode-Eigenschaft.
\P{UNICODE-EIGENSCHAFTSNAME}Findet ein beliebiges Zeichen, das die angegebene Unicode-Eigenschaft nicht hat.
\QSchützt alle folgenden Zeichen, bis \E folgt.
\rFindet das Zeichen CARRIAGE RETURN, \u000D.
\sFindet ein beliebiges Leerzeichen. Leerzeichen sind definiert als [\t\n\f\r\p{Z}].
\SFindet ein beliebiges Zeichen, das kein Leerzeichen ist.
\tFindet das Zeichen HORIZONTAL TABULATION, \u0009.
\uhhhhFindet das Zeichen mit dem Hex-Wert hhhh.
\UhhhhhhhhFindet das Zeichen mit dem Hex-Wert hhhhhhhh. müssen exakt acht Hex-Zeichen angegeben werden, auch wenn der höchste Unicode-Codewert momentan erst \U0010ffff ist.
\wFindet ein Wort-Zeichen. Wort-Zeichen sind [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}].
\WFindet ein Nicht-Wort-Zeichen.
\x{hhhh}Findet das Zeichen mit dem aus zwei Hex-Zeichen bestehenden Hex-Wert hhhh. Ein bis sechs Hex-Zeichen können hierbei angegeben werden.
\xhhFindet das Zeichen mit dem aus zwei Hex-Zeichen bestehenden Hex-Wert hh
\XFindet einen Grapheme Cluster (also ein sichtbares Schriftzeichen nach Unicode-Definition).
\ZGilt als Treffer, wenn die aktuelle Position am Ende des Suchtextes ist, aber noch vor dem letzten Zeilenende, falls eines vorhanden ist.
\zGilt als Treffer, wenn die aktuelle Position am Ende des Suchtextes ist.
\nRückbezug auf den Suche-Ausdruck. Übernimmt alles, was in der n. Suchgruppe gefunden wurde. n muss eine Ziffer > 1 und < der Gesamtanzahl der Gruppen im Pattern sein.
\0oooFindet ein oktales Zeichen. 'ooo' ist ein bis drei Oktalziffern lang. 0377 ist das höchste erlaubte Oktalzeichen. Die führende Null ist erforderlich; dadurch können Oktalwerte von Rückbezügen unterschieden werden.
[pattern]Findet beliebige Zeichen des Sets. In UnicodeSet ist definiert, was im Pattern vorkommen darf
.Findet irgendein Zeichen.
^Findet etwas am Anfang einer Zeile.
$Findet etwas am Ende einer Zeile.
\Schützt das folgende Zeichen. Die Zeichen, die geschützt werden müssen, damit sie als solche erkannt werden, sind * ? + [ ( ) { } ^ $ | \ .

Operatoren in Regulären Ausdrücken

OperatorDescription
|Alternanz. A|B findet entweder A oder B.
*Findet 0 oder mehr Treffer, vorzugsweise möglichst viele.
+Findet 1 oder mehr Treffer, vorzugsweise möglichst viele.
?Findet 0 oder mehr Treffer, vorzugsweise möglichst 1.
{n}Findet exakt n Treffer.
{n,}Findet mindestens n Treffer, vorzugsweise möglichst viele.
{n,m}Findet zwischen n und m Treffer, vorzugsweise möglichst viele, aber nicht mehr als m.
*?Findet 0 oder mehr Treffer, vorzugsweise möglichst wenige.
+?Findet 1 oder mehr Treffer, vorzugsweise möglichst wenige.
??Findet 0 oder mehr Treffer, vorzugsweise möglichst 0.
{n}?Findet exakt n Treffer
{n,}?Findet mindestens n Treffer, aber nicht mehr als nötig, damit der gesamte Reguläre Ausdruck passt
{n,m}?Findet zwischen n und m Treffer, vorzugsweise möglichst wenige, aber nicht weniger als n.
*+Findet 0 oder mehr Treffer, vorzugsweise möglichst viele nach dem ersten Treffer, wobei nicht weitergesucht werden soll, wenn weniger gefunden wurden, selbst wenn der gesamte Reguläre Ausdruck dann nicht passt (Possessive Match)
++Findet 1 oder mehr Treffer. Possessive match.
?+Findet 0 oder 1 Treffer. Possessive match.
{n}+Findet exakt n Treffer
{n,}+Findet mindestens n Treffer. Possessive Match.
{n,m}+Findet zwischen n und m Treffer. Possessive Match.
( ... )Gruppenklammern. Der gefundene Inhalt aus dem in Klammern befindlichen Ausdruck kann beim Ersetzen benutzt (eingefügt) werden..
(?: ... )Nicht-gruppierende Klammern. Gruppiert die eingeschlossenen Ausdrücke, deren Suchergebnisse allerdings nicht weiter benutzt werden können. Arbeiten daher etwas schneller als Gruppenklammern.
(?> ... )Atomic-Treffer Klammern. Nur der erste Treffer des Ausdrucks in der Klammer wird benutzt; wenn dadurch nicht der gesamte Reguläre Ausdruck gültig wird, sucht die Routine vor der Position des "(?>"
(?# ... )Kommentar (?# Kommentar ).
(?= ... )Vorausschau-Annahme. Wahr, wenn der Ausdruck in Klammern an der aktuellen Suchposition gültig ist, wobei die Suchposition nicht verändert wird.
(?! ... )Negative Vorausschau-Annahme. Wahr, wenn der Ausdruck in Klammern an der aktuellen Suchposition nicht gültig ist, wobei die Suchposition nicht verändert wird.
(?<= ... )Rückschau-Annahme. Wahr, wenn der Ausdruck in Klammern auf Text passt, der vor der aktuellen Suchposition liegt, wobei das letzte Zeichen des Suchtreffers das Zeichen direkt vor der aktuellen Suchposition sein muss. Die Suchposition wird nicht verändert. Die Länge der möglichen Treffertexte dieses Ausdrucks dürfen nicht begrenzt werden (also keine *- oder +-Operatoren verwenden.)
(?<! ... )Negative Rückschau-Annahme. Wahr, wenn der Ausdruck in Klammern nicht auf Text passt, der vor der aktuellen Suchposition liegt,wobei das letzte Zeichen des Suchtreffers das Zeichen direkt vor der aktuellen Suchposition sein muss. Die Suchposition wird nicht verändert. Die Länge der möglichen Treffertexte dieses Ausdrucks dürfen nicht begrenzt werden (also keine *- oder +-Operatoren verwenden.)
(?ismwx-ismwx: ... )Schalter-Einstellungen. Der in Klammern stehende Ausdruck wird mit ein- bzw. ausgeschalteten Schaltern geprüft.
(?ismwx-ismwx)Schalter-Einstellungen. Ändert die Schalter-Einstellungen. Die Änderungen werden nach dem Einfügen der Einstellungsänderung wirksam. Beispiel: (?i) ändert die Suche so, dass Groß-/Kleinschreibung nicht mehr beachtet wird.

Ersetzungstext

Der Ersetzen-Text für Suchen-&-Ersetzen-Operationen kann Referenzen auf gefundene Textteile enthalten. Diese Referenzen haben das Format $n, wobei n die Nummer der Suchgruppe ist.

CharacterDescriptions
$nDer Text der Suchgruppe n wird an der Position von $n eingefügt. muss >= 0 sein, aber nicht größer als die Gesamtzahl der Suchgruppen. Wenn einem $ keine Ziffer folgt, hat es keine besondere Bedeutung und wird ganz normal als $ wiedergegeben.
\Behandelt das nachfolgende Zeichen wörtlich, ohne spezielle Bedeutung. Der Schutz von Zeichen mit einem Rückwärts-Schrägstrich (Backslash) im Ersetzen-Text wird nur für die Zeichen '$' und '\' benötigt, führt aber bei anderen Zeichen nicht zu Problemen.

Weitere Informationen über Reguläre Ausdrücke nach ICU finden Sie hier: ICU REgular Expressions User Guide