burghi'sphp-dummies.de
PHP für Einsteiger und Fortgeschrittenere - an laufenden Scripten erklärt
07.09.2010, 02:00 Uhr - Impressum

Tutorials - RegExpressions - Basics - Zeichengruppen

Tutorials - RegExpressions
Basics: Zeichengruppen
Den Punkt (.) als Platzhalter hatten wir ja schon - er beschreibt ein beliebiges Zeichen.

Man kann RegExp aber mehr einschränken, man kann Zeichengruppen definieren, wie z.B.
[abcde] oder vereinfacht: [a-e] --> ein Buchhstabe von a bis e
[DEFGHIJK] oder vereinfacht: [D-K] --> ein Buchstabe von D bis K
[012345] oder vereinfacht: [0-5] --> eine Zahl von 0 bis 5
[öäüÖÄÜ] --> ein deutscher Umlaut
[a-zA-Z0-9] --> ein Buchstaben oder eine Zahl

- die Unterscheidung zwischen Groß- und Kleinbuchstaben müssen nur bei ereg() getroffen werden - eregi() ist Groß/Klein vollkommen egal somit würde reichen:
[a-z0-9] --> ein Buchstaben oder eine Zahl

Beispiel:
<?php
$Bestellnummer_1 = "PC-4345";
$Bestellnummer_2 = "PC-434P";

if(eregi("^[A-Z][A-Z]-[0-9][0-9][0-9][0-9]$", $Bestellnummer_1)) {
     echo "$Bestellnummer_1 ist korrekt<br />\n";
} else {
     echo "$Bestellnummer_1 ist falsch<br />\n";
}

if(eregi("^[A-Z][A-Z]-[0-9][0-9][0-9][0-9]$", $Bestellnummer_2)) {
     echo "$Bestellnummer_2 ist korrekt<br />\n";
} else {
     echo "$Bestellnummer_2 ist falsch<br />\n";
}
?>
Auch solchen Zeichengruppen kann man minimale / maximale Länge zuweisen (dann schauts schon humaner aus)
<?php
$Bestellnummer_1 = "PC-4345";
$Bestellnummer_2 = "PC-434P";

if(eregi("^[A-Z]{2}-[0-9]{4}$", $Bestellnummer_1)) {
     echo "$Bestellnummer_1 ist korrekt<br />\n";
} else {
     echo "$Bestellnummer_1 ist falsch<br />\n";
}

if(eregi("^[A-Z]{2}-[0-9]{4}$", $Bestellnummer_2)) {
     echo "$Bestellnummer_2 ist korrekt<br />\n";
} else {
     echo "$Bestellnummer_2 ist falsch<br />\n";
}
?>
Aber natürlich muss man nicht immer alles so "von-bis"-zusammenfassen.
Hier sind nur Nuller, Einser und Punkte erlaubt:
Auch hier müssen einige "Sonderzeichen" (die Sonderfunktionen haben) mit "\" Auskommentiert werden -
aus "." wird "\." - Sonst gilt "." nicht als "Zeichen Punkt" sondern bei regulären Ausdrücken eben als "beliebiges Zeichen" !!!
<?php
$reg = "^[01\.]{4}$";
$num = "10.1";
if(eregi($reg, $num)) echo "stimmt";
?>
© 2004-2005 - Impressum