Anchor
Durch Anker können Sie einen regulären Ausdruck am Anfang oder am Ende einer Zeile oder einer Eingabezeichenfolge fixieren. Sie können damit auch Ausdrücke erstellen, die mit dem Anfang, dem Ende oder dem Inneren eines Worts übereinstimmen.
Beispielsweise entspricht im Ausdruck er\b das \b einer Wortgrenze. Der Ausdruck entspricht dem "er" in "never", aber nicht dem "er" in "verb".
Funktionsweise von Anchorn
Die folgende Tabelle listet die Anchor für reguläre Ausdrücke sowie deren Bedeutung auf:
Zeichen |
Beschreibung |
---|---|
^ |
Entspricht der Position am Anfang der Eingabezeichenfolge. Wenn das Zeichen m (mehrzeilige Suche) in den Flags enthalten ist, entspricht ^ auch der Position nach \n oder \r. |
$ |
Entspricht der Position am Ende der Eingabezeichenfolge. Wenn das Zeichen m (mehrzeilige Suche) in den Flags enthalten ist, entspricht $ auch der Position vor \n oder \r. |
\b |
Entspricht einer Wortgrenze, d. h. der Position zwischen einem Wort und einem Leerzeichen. |
\B |
Entspricht einer anderen als einer Wortgrenze. |
Sie können einen Quantifizierer nicht zusammen mit einem Anchor verwenden. Da unmittelbar vor oder nach einem Zeilenende oder einer Wortgrenze nicht mehr als eine Position möglich ist, sind Ausdrücke wie ^* nicht zulässig.
Um eine Entsprechung für den Text am Beginn einer Textzeile zu finden, verwenden Sie das ^-Zeichen am Anfang des regulären Ausdrucks. Verwechseln Sie diese Verwendung des ^‑Zeichens nicht mit der Verwendung innerhalb eines Klammerausdrucks.
Um eine Entsprechung für den Text am Ende einer Textzeile zu finden, verwenden Sie das $-Zeichen am Ende des regulären Ausdrucks.
Wenn Sie beim Suchen nach Kapitelüberschriften Anchor verwenden möchten, entspricht der folgende reguläre Ausdruck einer Kapitelüberschrift, die nicht mehr als zwei folgende Ziffern enthält und am Anfang einer Zeile auftritt:
/^Chapter [1-9][0-9]{0,1}/
Eine echte Kapitelüberschrift steht nicht nur am Anfang einer Zeile, sondern ist auch der einzige Text in dieser Zeile. Sie steht am Anfang der Zeile sowie am Ende der gleichen Zeile. Der folgende Ausdruck gewährleistet, dass nur Kapitelüberschriften und keine Querverweise als Entsprechungen gefunden werden. Dies wird durch eine regulären Ausdruck erreicht, der Entsprechungen nur am Anfang und am Ende einer Textzeile sucht.
/^Chapter [1-9][0-9]{0,1}$/
Das Suchen von Entsprechungen für Wortgrenzen funktioniert etwas anders, erweitert die regulären Ausdrücke jedoch um wichtige Funktionen. Eine Wortgrenze ist die Position zwischen einem Wort und einem Leerzeichen. Eine Nichtwortgrenze ist jede beliebige andere Position. Der folgende Ausdruck entspricht den ersten drei Zeichen des Wortes "Chapter", da die Zeichen auf eine Wortgrenze folgen:
/\bCha/
Die Position des \b-Operators ist entscheidend. Steht er am Anfang einer Zeichenfolge, für die Entsprechungen gesucht werden, sucht er am Anfang des Wortes nach der Entsprechung. Steht er am Ende der Zeichenfolge, sucht er am Ende des Wortes nach der Entsprechung. Der folgende Ausdruck entspricht z. B. der Zeichenfolge "ter" im Wort "Chapter", da er vor einer Wortgrenze auftritt:
/ter\b/
Der folgende Ausdruck entspricht der Zeichenfolge "apt", wie sie in "Chapter" vorkommt, jedoch nicht in "aptitude":
/\Bapt/
Die Zeichenfolge "apt" tritt bei einer Nichtwortgrenze im Wort "Chapter" auf, aber bei einer Wortgrenze im Wort "aptitude". Beim \B-Operator für Nichtwortgrenzen ist die Position nicht von Bedeutung, da die Entsprechung nicht relativ zum Anfang oder Ende eines Wortes behandelt wird.