PHP: Schnellreferenz reguläre Ausdrücke

von Markus Christian Koch

An vielen Stellen kann der Gebrauch von regulären Ausdrücken das Programmiererleben erheblich vereinfachen. Allerdings ist der Einstieg in deren Gebrauch nicht so ganz einfach – aus diesem Grunde haben wir an dieser Stelle eine Kurzreferenz für Sie zusammengestellt, die so manches komplexe if-Gebilde ersparen kann.

^ Anfang eines Strings
$ Ende eines Strings
. ein beliebiges Zeichen
n? optional vorhandenes ’n‘
n* Kein oder mehrfaches Vorkommen von ’n‘
n+ Ein oder mehrere Vorkommen von ’n‘
n{2} Genau zweifaches Vorkommen von ’n‘
n{2,} Mindestens 2 oder mehrere Vorkommen von ’n‘
n{2,4} Mindestens 2, höchstens 4 Vorkommen von ’n‘
() Klammern für Ausdrücke
(n|a) Entweder ’n‘ oder ‚a‘
[1-6] eine Zahl zwischen 1 und 6
[c-h] ein Kleinbuchstabe zwischen c und h (c,d,e,f,g,h)
[D-H] ein Großbuchstabe zwischen D und H (D,E,F,G,H)
[^a-z] kein Vorkommen von Kleinbuchstaben zwischen a und z
[_a-zA-Z] ein Unterstrich und ein beliebiger Buchstabe des Alphabets
[:space:] Leerzeichen
\ Escape-Zeichen, u.a. für ? ‚ “ –

… und einige Beispiele:

eregi(„^([a-z\?\-]|[[:space:]])*$“, $textstring)
Ein String aus einer beliebigen Anzahl Kleinbuchstaben, Fragezeichen und Minuszeichen ODER einer beliebigen Anzahl Leerzeichen.

preg_match(„^([A-Z[:space:]]|[0-9])*$“, $textstring)
Ein String bestehend aus einer beliebigen Anzahl an Grossbuchstaben und Leerzeichen ODER nur aus Zahlen bestehend.

preg_match_all(„modules.php\?name=([/:\-\'{}()._&a-zA-Z0-9+=]*)“, $textstring, $list)
Ein String mit dem ein oder mehrfach enthaltenen Seitennamen „modules.php?names=“ gefolgt von einer beliebig langen Zeichenkette. Diese darf alle alphanumerischen Zeichen 0-9, A-Z und a-z enthalten sowie runde Klammern, spitze Klammern, Punkte, Unterstriche, Und-Zeichen, Slashes, Doppelpunkte, Pluszeichen, Minuszeichen und Hochkommata. $list bezeichnet das Array, in dem welchem Informationen über die Fundstellen des gesuchten Ausdrucks gespeichert werden.

Innerhalb der Ausdrücke in eckigen Klammern und Doppelpunkten ‚[:‘ und ‚:]’sind verschiedene Klassen an Zeichen möglich (standard character classes):

alpha A-Z, a-z
graph jedes druckbare Zeichen außer Leerzeichen
lower Kleinbuchstaben
upper Großbuchstaben
cntrl Steuerzeichen
print jedes druckbare Zeichen inklusive Leerzeichen
xdigit Prüfung auf Hexadezimalwerte

Einfache Typprüfungen an Strings lassen sich in PHP >=4.04 mit Hilfe der ctype_-Funktionen schneller realisieren als mit regulären Ausdrücken: unter den jeweiligen Namen der Standard Character Classes stehen die entsprechenden Funktionen ctype_alpha, ctype_graph, ctype_lower etc. zur verfügung. So prüft z.B. „if (ctype_lower($text)) {…}“ ob der Inhalt der Variable $text ausschliesslich aus Kleinbuchstaben besteht. Trifft dies zu, so wird eine hier nicht weiter ausgeführte Prozedur eingeleitet.

Sortiert nach:   neueste | älteste | beste Bewertung
trackback

[…] ich krigs einfach noch nicht hin, obwohl ich fleißig versuche, dieses Thema zu verstehen. Selbst PHP: Schnellreferenz reguläre Ausdrücke | PHP | Dr. Web Magazin konnte mir nicht helfen. Folgendes Problem: mit PHP-Code: […]

trackback

[…] vielleicht so? save150_comp_KG_rlow.rep[1-1000] PHP: Schnellreferenz regul

wpDiscuz

Mit der Nutzung unseres Angebots erklärst du dich damit einverstanden, dass wir Cookies verwenden. Weitere Informationen

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anzubieten und die Zugriffe auf unsere Website zu analysieren. Dadurch geben wir nicht personenbezogene Informationen zur Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Nähere Informationen findest du in unserer Datenschutzerklärung. Durch die Weiternutzung unserer Website (oder das ausdrückliche Klicken auf "Einverstanden") gehen wir davon aus, dass du mit der Verwendung von Cookies einverstanden bist.

Schließen