6.1. Muster
Ein regulärer Ausdruck wird in der Regel durch "// eingeschlossen. Er kann im Context von Zuweisungen oder Vergleichen eingesetzt werden. Der zwischen den "//" befindliche String beschreibt ein Muster gegen das geprüft wird. Das Muster besteht aus den folgenden Bestandteilen:

Muster
Beschreibung
Beispiel
Matched auf
string
Zeichenkette
/abc/
abc
.
beliebiges Zeichen ausser "\n"
/a.c/
aac, abc, acc, a1c, ...
[zeichenmenge]
eine Zeichen aus der Menge
/[abc]/
/[a-d]/
a, b, c
a, b, c, d
[^zeichenmenge]
nicht in der Menge
/[^aeiou]/
b, c, d, f, g, h,...
*
null oder mehrmals das "Vorhergehende" (gierig!)
(*? ist nicht gierig)
/ab*c/
ac, abc, abbc, abbbc, abbbbbc...
+
ein oder mehrmals das "Vorhergehende"
/ab+/
ab, abb, abbb, abbbbb...
?
null oder einmal das "Vorhergehende"
/ab?/
a, ab
{m,n}
zwischen m- und n-mal das "Vorhergehende"
/ab{2,4}/
abb, abbb, abbbb
(gruppe)
Fasst ein Muster zusammen, so dass es refereziert werden kann (mit \1, \2 usw.)
/(abc)*/
/a(.)b(.)c\2d\1/
abc, abcabc, abcabcabc,...
axbycydx, aVbWcWdV
|
Alternative
/ernie|bert/
ernie, bert
^
Ausrichtung am Anfang der Zeile
/^abc/
Zeilen, die mit abc beginnen
$
Ausrichtung am Ende der Zeile
/abc$/
Zeilen, die mit abc enden
/START/../ENDE/
Alle Zeilen zwischen START und ENDE (inkl. der beiden "Tag"-Zeilen
/aa/../bb/
aa
adadada
bb
/START/.../ENDE/
Alle Zeilen zwischen START und ENDE - beide Tags müssen aber in unterschiedlichen Zeilen stehen
/aa/.../bb/
aaa
dfasf
bb

Zeichenmengen können mit den folgenden Zeichen abgekürzt werden:

Abkürzung
Zeichenmenge
\d
Ziffern [0-9]
\w
Zeichen [0-9A-Za-z_]
\s
Whitespace (Leerzeichen, Tab, \n, \r, \f)
\n
Zeilenumbruch
\D
Keine Ziffer
\W
Kein Zeichen
\S
Nicht Whitespace
\\
Back-Slash
\/
Slash

Wenn eine anderes Trennzeichen als // zur Begrenzung benutzt werden soll, kann mit dem Operator "m" ein anderes Muster definiert werden. Z.B.:

      m#abc#
      m@abc@
      /abc/