Perl Regular Expressions (Reguläre Ausdrücke)

unter besonderer Berücksichtigung der Index-Suche im WWW.

Normale Zeichen: Buchstaben A-Za-z, Ziffern 0-9, einige Sonderzeichen wie _-,' . Jedes Sonderzeichen erhält bei Perl (!) seine normale Bedeutung als Zeichen, wenn ein "Backslash" \ vorangestellt wird.

Anm.: Bei der Index-Suche im WWW (cgi-bin) wird das Leerzeichen ' ' intern durch ein Pluszeichen '+' ausgetauscht. Das Leerzeichen ist als \40 oder \s einzugeben, das Pluszeichen als \+ , ein Punkt entsprechend als \. . Man erhält die komplette Liste, wenn man nur einen Punkt '.' in das Suchfeld eingibt.

Suche: Meta-Zeichen mit besonderer Bedeutung

^
Zeilenanfang (Bsp.: ^Anfang)
$
Zeilenende (Bsp.: Ende$)
|
Alternative ("oder", Bsp.: Chemie|Physik)
.
beliebiges Zeichen (außer der Zeilenendmarkierung)
*
Wiederholung des letzten Zeichens (einschließlich keinmal, das Zeichen braucht also gar nicht vorhanden zu sein)
.*
beliebige Zeichenkette (Bsp.: ^.*$ paßt für jede beliebige Zeile)
+
Wiederholung des letzten Zeichens (mindestens einmal vorhanden)
?
das letzte Zeichen muß einmal oder gar nicht auftreten
{n} {n,m}
das letzte Zeichen muß n mal bzw. n bis m mal auftreten (Bsp.: W{3} entspricht WWW)
\w
alphanumerisches Zeichen einschließlich _
\W
nichtalphanumerisches Zeichen (einschließlich Leerstelle)
\b
Wortgrenze ("boundary", Bsp.: \bin\b das Wort 'in')
\B
keine Wortgrenze ("non-boundary")
\d
Ziffer
\D
keine Ziffer
\s
Zwischenraum ("whitespace")
\S
kein Zwischenraum ("non-whitespace")
[...]
Zeichenklasse, z.B. [A-H] Buchstabe A bis H
[^...]
Ausschluß einer Zeichenklasse, z.B. [^A-H] irgendein Zeichen außer einem Buchstaben A bis H

\n \r \f \t \nnn
LF CR FF HT Octal-Code
(...)
Markierung einer Unterkette (substring). Innerhalb eines Musters kann man (z.B.) mit \1 darauf Bezug nehmen, außerhalb mit $1 (allgemein \n bzw. $n).

Beispiele für die WWW-Index-Suche

.
Ausgabe der kompletten Liste (ein beliebiges Zeichen wird gesucht)
\bFU\b
'FU' als Wort
Chemie|Physik
'Chemie' oder 'Physik'
Chemie.*Physik|Physik.*Chemie
'Chemie' und 'Physik' (in beliebiger Reihenfolge)
ftp.server
ftp\Wserver
paßt z.B. für 'ftp-server' oder 'ftp server'
ftp\sserver
paßt nur für 'ftp server'
W{3}
(W)\1\1
steht für WWW
behaviou?r
paßt für 'behavior' oder 'behaviour'

Suchen und ersetzen

$n
n-te Unterzeichenkette (Substring, "bracket")
$+
letzte passende Unterzeichenkette (Substring, "bracket")
$&
gesamte passende Zeichenkette
$\'
alles vor der passenden Zeichenkette
$'
alles nach der passenden Zeichenkette

Burkhard Kirste, 1994/04/12