PHP4-Forum
Forum | Befehle | MySQL | Beispiele | Newsletter | Suche | Home

Untermenü

Erweitertes
Reguläre Ausdr.
MIME-Mail
PHP und WAP
Crontab
HTTP-Header
Klassen, Objekte

Zu dieser Seite

Reguläre Ausdr.
Grundlagen I
Grundlagen II
ereg() und eregi()
Beispiel zu ereg()
ereg_replace()
Schneller mit PCRE
Grundlagen II

Gruppieren von Zeichen

Bisher nützen uns die Regulären Ausdrücke nicht besonders viel, denn wir möchten nicht nur prüfen, ob ein bestimmtes Wort irgendwo vorkommt, sondern ob ein variabler Begriff vorkommt. Alle Zeichen die vorkommen dürfen werden dann hintereinandergereit und in eckige Klammern geschlossen:
^[AeEeIiOoUuÄäÖöÜü]$ findet die Zeichenkette, die aus nur einem Zeichen besteht, und zwar muss dieses ein Vokal oder Umlaut sein.
Möchte man eine Kette von Zeichen suche, z.B. die Zahlen 0 bis 9, kanns man statt [0123456789] auch [0-9] angeben. Ebenso geht dies bei den Buchstaben:
[A-Za-z] Hier werden sogar alle Klein- und Großbuchstaben gefunden

Für oft verwendete Ausdrücke gibt es besondere Schreibweisen:
[[:alpha:]]  Alle Buchstaben (entspricht [A-Za-z])
[[:digit:]]  Alle Zahlen (0 bis 9) - (entspricht [0-9])
[[:alnum:]]  Alle Buchstaben und Zahlen (entspricht [A-Za-z0-9])
[[:space:]]  Alle nicht sichtbaren Zeichen (Space, Umbruch...)
[[:upper:]]  Alle großen Buchstaben (entspricht [A-Z])
[[:lower:]]  Alle kleine Buchstaben(entspricht [a-z])
[[:punct:]]  Jedes Punkt-Zeichen (Komma und Punkt)
[[:xdigit:]] Jedes Hexa-Dezimales Zeichen (entspricht [0-9A-Fa-f])
.            (Punkt) Jedes beliebige Zeichen


Mehrmaliges Vorkommen


Auch dies nützt noch nicht viel. Denn es sollen auch einige Zeichen häufiger vorkommen. Hierzu werden in geschweiften Klammern angegeben, wie oft das Zeichen vorkommen darf:
[Aa]{2} findet "AA", "Aa", "aA" und "aa".
Um eine variable Anzahl zu erzeugen, kann man zwei durch Komma getrennte Zahlen in der geschweiften Klammer angeben. Die erste ist die Mindest-Anzahl und die zweite die maximale Anzahl:
[Aa]{1,2} findet "AA", "Aa", "aA" und "aa", aber auch "A" und "a".
Wenn man die zweite Zahl weglässt (aber das Komma stehen lässt), so werden mindestens soviele Zeichen gefunden, wie bei Zahl 1 angegeben ist. Beim Weglassen der ersten Zahl ist dies genauso:
[Aa]{1,} findet eine Zeichenkette mit mindestens einem A: "A", "a", "AA", "aAa" etc..
[Aa]{,3} findet eine Zeichenkette mit höchstens drei hintereinanderstehenden A: "A", "a", "AA", "aAa" etc., aber nicht "aAAa".

Es gibt folgende Sonderzeichen, die manche Varianten erleichtern:
+ Findet mindestens ein Zeichen: [A]+ entspricht [A]{1,}
* Findet beliebig viele oder kein Zeichen: [A]* entspricht [A]{0,}
? Findet ein oder kein Zeichen: [A]? entspricht [A]{0,1}


Beispiel:

^[[:digit:]]*\.[[:digit:]]{2}$ findet eine gültige Zahl mit zwei Kommastellen
^\-?[[:digit:]]*\.?[[:digit:]]*$ findet jede Zahl
Dienstleistungen | Werbung | Impressum | Sitemap | Kontakt | Email © 1999 - 2013 | Last Update: 30.01.2001