| perlreref Dokumentation zu Perl 5.9.2 | Download als POD | Wie kann ich hier etwas ändern? |
=~ bestimmt, auf welche Variablen die Regex angewendet wird.
In Abwesenheit des Operators wird die Variable $_ benutzt.
$var =~ /foo/;
!~ bestimmt, auf welche Variablen die Regex angewendet wird
und negiert das Ergebnis des Matches; es liefert falsch
zurück, wenn das Muster passt und wahr, wenn nicht.
$var !~ /foo/;
m/Muster/igmsoxc durchsucht einen Strings nach einem Muster
und wendet die angegebenen Modifikatoren an.
i Groß-/Kleinschreibung ignorieren
g Global - alle Vorkommen des Musters
m Multiline Mode - ^ und $ passen auf Zeilenanfang/-ende
innerhalb des Strings
s als einzelne Zeile matchen - . passt auf \n
o Muster nur einmal kompilieren
x erweiterte Lesbarkeit - beliebiger Whitespace und Kommentare
c bei fehlgeschlagenen Matches und Benutzung von /g
den Wert für pos nicht zurücksetzen
Wenn 'muster' ein leerer String ist, wird das letzte
I<erfolgreich> passende Muster benutzt. Es können andere
Begrenzer als '/' für diesen und die folgenden Operatoren
genommen werden.
qr/Muster/imsox erlaubt es, eine Regex in einer Variablen zu
speichern oder zu übergeben. Modifikatoren gelten wie bei m//
und werden mit der Regex gespeichert.
s/Muster/Ersetzung/igmsoxe ersetzt Treffer von 'Muster' durch
'Ersetzung'. Modifikatoren gelten wie bei m// mit einer Ergänzung:
e Werte 'Ersetzung' als Ausdruck aus
'e' kann mehrfach genannt werden. 'Ersetzung' wird wie ein
String in doppelten Anführungszeichen interpretiert, wenn nicht
einzelne Anführungszeichen (') die Begrenzer sind.
?Muster? ist wie m/Muster/, aber passt nur einmal. Es können
keine anderen Begrenzer benutzt werden. Muss mit der Funktion
L<reset|perlfunc/reset> zurück gesetzt werden.
\ Entwertet die Sonderbedeutung des darauf folgenden Zeichens
. Passt auf ein beliebiges Zeichen außer Newline (außer /s wird benutzt)
^ Passt auf den Anfang des Strings (oder einer Zeile, wenn /m benutzt wird)
$ Passt auf das Ende des Strings (oder einer Zeile, wenn /m benutzt wird)
* Passt auf das vorherige Element 0- oder mehr Mal
+ Passt auf das vorherige Element 1- oder mehr Mal
? Passt auf das vorherige Element 0- oder 1-mal
{...} Spezifiziert einen Bereich für das Auftreten des Elementes davor
[...] Passt auf ein beliebiges der Zeichen innerhalb der Klammern
(...) Gruppiert Unterausdrücke, um sie in $1, $2, ... einzufangen
(?:...) Gruppiert Unterausdrücke ohne sie zu einzufangen
| Passt auf den Unterausdruck davor oder dahinter
\1, \2 ... Der Text der n-ten Gruppe
\a Alarm (Piepton)
\e Escape
\f Seitenvorschug (Formfeed)
\n Zeilenvorschub (Newline)
\r Wagenrücklauf (Carriage return)
\t Tab
\037 Ein beliebiger oktaler ASCII-Wert
\x7f Ein beliebiger hexadezimaler ASCII-Wert
\x{263a} Ein hexadezimales 2-Byte-Zeichen
\cx Control-x
\N{Name} Ein benanntes Zeichen
\l Wandle das folgende Zeichen in Kleinschrift
\u Wandle das folgende Zeichen in Großschrift
\L Wandle bis \E in Kleinschrift
\U Wandle bis \E in Großschrift
\Q Deaktiviere Muster-Metazeichen bis \E
\E Ende der obigen Modifikatoren
Zur Großschrift siehe L</Großschrift>.
Dieses funktioniert anders als in normalen Zeichenketten:
\b Eine Wortgrenze, kein Backspace, außer in Zeichenklassen
[amy] Passt auf 'a', 'm' oder 'y' [f-j] Ein Bindestrich bezeichnet einen "Bereich" [f-j-] Ein Bindestrich mit vorstehendem '\' oder am Anfang oder Ende zählt als Bindestrich [^f-j] Ein '^' am Anfang bedeutet "passt auf alle Zeichen _außer_ diesen"Die folgenden Sequenzen innerhalb und außerhalb von Zeichenklassen. Die ersten sechs beachten die Locale, alle beachten Unicode. Das Default-Äquivalent einer Zeichenklasse steht am Ende. Für Details siehe perllocale und perlunicode.
\d Eine Ziffer [0-9]
\D Eine Nicht-Ziffer [^0-9]
\w Ein Wortzeichenr [a-zA-Z0-9_]
\W Ein Nicht-Wortzeichen [^a-zA-Z0-9_]
\s Ein Whitespace-Zeichen [ \t\n\r\f]
\S Ein Nicht-Whitespace-Zeichen [^ \t\n\r\f]
\C Passt auf ein Byte (in Unicode passt '.' auf ein Zeichen)
\pP Passt auf das mit P benannte (Unicode-)Objekt
\p{...} Passt auf das Unicode-Objekt mit langem Namen
\PP Passt auf ein Nicht-P-Objekt
\P{...} Passt auf das Fehlen eines Unicode-Objektes mit langem Namen
\X Passt auf eine erweiterte Unicode-Sequenz
POSIX-Zeichenklassen und ihre Unicode- und Perl-Äquivalente:
alnum IsAlnum Alphanumerisch
alpha IsAlpha Alphabetisch
ascii IsASCII Beliebiges ASCII-Zeichen
blank IsSpace [ \t] Horizontaler Whitespace (GNU-Erweiterung)
cntrl IsCntrl Steuerzeichen
digit IsDigit \d Ziffern
graph IsGraph Alphanumerisch und Satzzeichen
lower IsLower Kleinbuchstaben (berücksichtigt Locale und Unicode)
print IsPrint Alphanumerisch, Satzzeichen und Leerzeichen
punct IsPunct Satzzeichen
space IsSpace [\s\ck] Whitespace
IsSpacePerl \s Perls Definition von Whitespace
upper IsUpper Großbuchstaben (berücksichtigt Locale und Unicode)
word IsWord \w Alphanumerisch plus _ (Perl-Erweiterung)
xdigit IsXDigit [0-9A-Fa-f] Hexadezimale Ziffer
Innerhalb einer Zeichenklasse:
POSIX Traditionell Unicode
[:digit:] \d \p{IsDigit}
[:^digit:] \D \P{IsDigit}
^ Passt auf den Stringanfang (oder einer Zeile, wenn /m benutzt wird) $ Passt auf das Stringende (oder einer Zeile, wenn /m benutzt wird) oder vor Newline \b Passt auf eine Wortgrenze (zwischen \w und \W) \B Passt außer bei einer Wortgrenze (zwischen \w und \w oder \W und \W) \A Passt auf den Stringanfang (unabhängig von /m) \Z Passt auf das Stringende (vor einem optionalen Newline) \z Passt auf das absolute Stringende \G Passt, wo ein voheriges m//g aufgehört hat
Maximal Minimal Erlaubter Bereich
------- ------- -----------------
{n,m} {n,m}? Muss mindestens n-mal, aber nicht mehr als m-mal treffen
{n,} {n,}? Muss mindestens n-mal treffen
{n} {n}? Muss genau n-mal treffen
* *? 0 oder mehr Male (dasselbe wie {0,})
+ +? 1 oder mehr Male (dasselbe wie {1,})
? ?? 0 oder 1 Mal (dasselbe wie {0,1})
Es gibt keinen Quantifizierer {,n} - dies wird wörtlich als String interpretiert.
(?#Text) Ein Kommentar
(?imxs-imsx:...) Option ein-/ausschalten (wie bei m// Modifikatoren)
(?=...) Positive Vorschau-Zusicherung der Breite Null
(?!...) Negative Vorschau-Zusicherung der Breite Null
(?<=...) Positive Rückschau-Zusicherung der Breite Null
(?<!...) Negative Rückschau-Zusicherung der Breite Null
(?>...) Sammeln, was möglich ist - kein Backtracking
(?{ Code }) Eingebetteter Code, Rückgabewert landet in $^R
(??{ Code }) Dynamische Regex, Rückgabewert wird als Regex benutzt
(?(Bed)ja|nein) Bed ist ein Integer, der einem eingefangenen Unterausdruck
(?(Bed)ja) entspricht, oder eine Vor-/Rückschau-/Code-Zusicherung
$_ Default-Variable, die von Operatoren genutzt wird $* Erlaubt Matching über mehrere Zeilen (nicht mehr in 5.9.0 oder höher) $& Der ganze matchende String $` Alles vor dem matchenden String $' Alles nach dem matchenden StringDie Verwendung einer der drei letzteren Variablen will die Verarbeitung aller regulären Ausdrücken in Ihrem Programm verlangsamen. Erfahren Sie in perlvar unter
@LAST_MATCH_START , wie äquivalente Ausdrücke aussehen, die keine Verlangsamung bewirken. Siehe auch Devel::SawAmpersand?.
$1, $2 ... enthält den n-ten eingefangenen Unterausdruck
$+ Der letzte Treffer eines geklammerten Musters
$^N Das Ergebnis des letzten Unterausdrucks
$^R Enthält das Ergebnis des letzten (?{...}) Ausdrucks
@- Offsets der Gruppenanfänge. $-[0] enthält den Anfang des gesamten Treffers
@+ Offsets der Gruppenenden. $+[0] enthält das Ende des gesamten Treffers
Eingefangene Gruppen werden entsprechend ihrer öffnenden Klammern nummeriert.
lc Einen String in Kleinbuchstaben umwandeln lcfirst Den ersten Buchstaben eines Strings klein machen uc Einen String in Großbuchstaben umwandeln ucfirst Den ersten Buchstaben eines Strings groß machen pos Position des letzten Treffers liefern oder setzen quotemeta Metazeichen entwerten reset Den Status einer ?Muster?-Suche zurücksetzen study Einen String zur optimierten Suche analysieren split Eine Regex nutzen, um einen String aufzuteilenDie ersten vier dieser Liste sind wie die Escape-Sequenzen
\L , \l , \U und \u . Für Großbuchstaben siehe L</Großbuchstaben>.
perlretut - ein Tutorium für Reguläre Ausdrücke.
perlrequick - ein schnelles Tutorium.
perlre - mehr Details.
perlvar - Details zu den Variablen.
perlop - Details zu den Operatoren.
perlfunc - Details zu den Funktionen.
perlfaq6 - FAQs zu Regulären Ausdrücken.
Das Modul re ändert das Verhalten und hilft bei der Fehlersuche in Regulären Ausdrücken.
L<perldebug/"Reguläre Ausdrücke debuggen">
perluniintro, perlunicode, charnames und locale beschäftigen sich mit Details zu Regulären Ausdrücken und Internationalisierung.
Reguläre Ausdrücke von Jeffrey Friedl ( http://regex.info/ ) liefert eine ausführliche Grundlage und Referenz zu diesem Thema.
dubu {at} perl-community.de
-- HaraldBongartz - 26 May 2005 | I | Attachment | Action | Size | Date | Who | Comment |
|---|---|---|---|---|---|---|
| |
perlreref-5.9.2.pod | manage | 11.1 K | 2008-04-09 - 00:35 | HaraldBongartz | dezimal => hexadezimal (Dank an Frank Nagel) |