![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 18.03.2005
Beiträge: 576
|
RegExp - Gierig oder nicht ?
Oft werde ich gefragt, was mit »Gier« bei regulären Ausdrücken eigentlich gemeint ist. Die »Gier« bei regulären Ausdrücken wird somit begründet: Reguläre Ausdrücke suchen immer die größtmöglichste Anzahl von Zeichen, die kann mit dem Modifer U unterdrückt werden. Anhand von keinen Beispielen möchte ich darauf mal eingehen. Nehmen wir an, wir suchen alle Buchstaben in einer Zeichenkette mit preg_match_all(). PHP-Code:
PHP-Code:
Code:
delimiter pattern (was wird gesucht) delimiter modifer
# ([a-z])+ # i
([a-z])+ = Suche eine Gruppe von Zeichen,
welche aus Buchstaben von a-z besteht,
diese können/müssen einmal, oder beliebig oft vorkommen
Würden wir jetzt diese Beispiel anwenden, würden wir folgendes Array zurück erhalten: Code:
[0] => Array
(
[0] => the
[1] => quick
[2] => brown
...
[6] => the
[7] => lazy
[8] => dog
)
PHP-Code:
Code:
[0] => Array
(
[0] => t
[1] => h
[2] => e
...
[32] => d
[33] => o
[34] => g
)
Mit dem Modifer U wurde nun die Gier unterdrückt, also nicht auf die größtmöglichste Anzahl von Zeichen suchen. Da unser Quantor ein + ist, hat es nun zufolge, dass er jeden einzelnen Buchstaben erkennt. Wir erinnern uns: Quantor + = Das Zeichen kann/muss einmal oder beliebig oft vorkommen. Der Modifer U sagt jetzt praktisch dem Quantor "eh du, suche nur einmal, nicht alles" ... Zum Schluss noch ein Beispiel: Ich habe ein Korb mit 10 Äpfel. Anstatt alle auf einmal zu nehmen, nehme ich nur ein einen aus dem Korb. -> also »gierigkeit« unterdrückt Ich hoffe, ich konnte das Verhalten von Gier etwas näher bringen. MfG CIX88 (Änderungen vorbehalten) |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Frage zum Tut: [PHP] Fremde Webseiten auslesen | the_cRu | PHP-Programmierung | 27 | 10.02.2007 19:59 |
| Werte in einen Regexp einsetzen. | ex³ | PHP-Programmierung | 6 | 02.02.2007 07:27 |
| regexp Datums-Vervollständigung | ex³ | PHP-Programmierung | 10 | 12.02.2006 16:16 |
| [MySQL] REGEXP Problem | Jay | Datenbanken | 3 | 27.12.2005 13:52 |
| [PHP] Ein einfaches Template-System | MrNiceGuy | Tutorials | 0 | 09.10.2005 18:30 |