Anker
Um [ABC] nur am Wortanfang zu suchen, benötigen wir einen Anker. Der Anker gibt an, wo ein Platzhalter sich befinden muss – er markiert eine Position. Um [ABC] am Wortanfang zu suchen, wird der Ausdruck \b verwendet. \b steht für eine Wortgrenze (boundary).
Um ein Suchmuster am Anfang einer Zeile zu finden, wird der Anker ^ verwendet – aber Achtung, auch "^" hat eine doppelte Bedeutung, denn in Zeichenklassen negiert es ein Suchmuster:
'Hallo Welt' -match '^[ABC]+'
> False
'Hallo Welt' -match '^[^ABC]+'
> True
Das erste Beispiel erwartet als erstes Zeichen in der Zeile die Buchstaben A, B oder C. Da Hallo mit H anfängt, wertet der reguläre Ausdruck zu False aus. Im zweiten Beispiel wird das ^ auch in der Zeichenklasse angegeben. Hier negiert es die Buchstaben ABC – es werden alle Zeichen gesucht, die nicht A, B oder C sind. Achten Sie bei der Negierung darauf, dass sich das "^" auf alle Zeichen der Zeichenklasse bezieht – auch der folgende Ausdruck (mit führendem Leerzeichen) ergibt True:
' Hallo Welt' -match '^[^ABC]+'
Das kommt vielleicht unerwartet, macht aber durchaus Sinn, da auch ein Leerzeichen NICHT A, B oder C ist.
|
Anker |
Beispiel | |
|
^ |
^\d{4} |
Zeilenanfang. 4 Zahlen am Anfang der Zeile (z.B. das Jahr in einem Logfile) |
|
$ |
(\w*)$ |
Zeilenende. Das letzte Wort vor dem Zeilenende |
|
\b |
\bAn |
Wort-Grenze, das Beispiel finde in AnnaAnna nur das erste An, das es am Be-ginn des Wortes steht |
|
\B |
\BAn |
Nicht Wort-Grenze, findet in AnnaAnna nur das zweite An |