Zum Hauptinhalt springen

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