Hallo Bobbi,
also ein string kann zB so aussehen:
abcdefghijklmn98-20ogfkerdfnsdmsdfghabe gesehen, dass es mit der funktion preg_match() geht.
Das ist schon mal ein guter Anfang. Mit preg_match() kannst du nach bestimmten Mustern suchen und die gefundene Stelle in ein "Treffer-Array" eintragen.
Doch ich verstehe nicht ganz, in welche Klammern welcher Wert kommt, es gibt ja [], () und {}. In den () steht ja das, was ich später erhalte.
Die runden Klammern dienen erstmal dazu, um Teilausdrücke (oder Unterausdrücke) innerhalb eines Suchmusters zu Gruppen zusammenzufassen. Auf diese geklammerten Teilbereiche kann man später zurückgreifen. In preg_match() kann man das z.B. tun, in dem man das oben erwähnte Treffer-Array übergibt. Dort stehen dann die Teilausdrücke aufgeführt.
Mit [] lege ich fest, welche Zeichen enthalten sind, richtig?
Das nennt sich Zeichenklasse, "character class" oder ähnlich ...
Und wofür sind {}? Für die Länge?
Für die Anzahl der zu suchenden Zeichen. Die Syntax ist {min,max}. Es gibt aber auch diverse Kurzschreibweisen und Ersatzzeichen dafür.
Ich sach ma' so: Du willst aus einem String eine Zeichenkettenkombination rausfischen, die man folgendermaßen beschreiben könnte:
1. Sie beginnt mit einer Zahl (eine oder mehrere Ziffern).
2. Sie enthält als nächstes ein Minus "-".
3. Sie enthält als letztes wiederum eine Zahl (mit einer oder mehreren Ziffern).
Das sieht, in ein PCRE-Suchmuster umgesetzt, so aus:
'/\d+\-\d+/'
Die Erklärung dazu:
'\d' eine Ziffer
'+' das vorherige Muster ein oder mehrere Mal
'-' das Minus
Statt '\d' kann man auch '[0-9]' schreiben, das würde dann eine Zeichenklasse definieren, die die Ziffern von 0 bis 9 enthalten darf.
Jetzt machen wir PHP-Code draus:
$heuhaufen = 'abcdefghijklmn98-20ogfkerdfnsdmsdfg';
if( !preg_match('/\d+\-\d+/', $heuhaufen, $rx_matches) ) {
print('Nichts gefunden');
}
else {
print('Ich habe ein Muster entdeckt!');
// Das Array mit dem/den gefundenen Muster(n) ausgeben
print_r($rx_matches);
}
Wichtige Information zum Thema reguläre Ausdrücke (PCRE) findest du auf den folgenden Seiten:
http://regexp-evaluator.de/tutorial/
http://www.php-resource.de/tutorials/read/10/1/
Wikibook: Websiteentwicklung/PHP/Reguläre_Ausdrücke
PCRE.org (englisch)
und im PHP-Handbuch:
PCRE-Suchmuster-Syntax
PCRE-Suchmuster-Modifikatoren
MffG
EisFuX