| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |||
| Erfahrener Benutzer | @M3g4: Danke Ehrlich gesagt hab ich mich schon gefragt, wie man zwischen greedy und lazy wechselt, aber bisher kam ich nich in die Versuchung nachzuschauen Zitat:
Bitte nicht lesen! Zitat:
__________________ Nicht jeder Fehler ist ein Bug. | ||
| |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | wow, statt dieser liste an flames wär ne produktive antwort aber schneller gegangen. leute, denkt an eure pumpe! und wenn man etwas nicht weiß, braucht man nicht antworten. 1/ in diesem falle veranlaßt das ? dass das vorgehende ausdrucksliteral ( . ) nur minimal viele zeichenfindet. normalerweise schluckt preg soviele zeichen wie der ausdruck erlaubt. stichwort greedy wurde schon genannt. bei einem U Parameter kehrt sich die ganze Geschichte übrigens um... 2/ entscheidend ist, was mit Klammern gematcht wird. du könntest also [b] variabel halten: #(?:(.*?)(?:)#i würde jetzt einen Satz mit oder ohne [b] tags finden. i stellt sicher, dass auch großgeschriebene Tags erlaubt sind. Über die Klammern (?: ) kannst du ja selbst forschen griß --n |
| |
| | |
| Gast
Beiträge: n/a
| EDIT: Das mit der „Gier” ist ein Zusammenspiel von Suchpattern und Parametern (Modifer). $text = " text 1234 text text 5678 text "; PHP-Code: PHP-Code: PHP-Code: PHP-Code: PHP-Code: PHP-Code: Modifer s ist mit Absicht benutzt worden, um die kleine Beispiele über mehrere Zeilen zu testen. Erst dann kann man das Verhalten von „Gier” besser nachvollziehen. Sonstiges: . = entspricht einen beliebige Zeichen, ausser \n etc.. ? = Min/Max-Quantor {0,1}, gar nicht oder nur einmal * = Min/Max-Quantor {0,}, gar nicht oder beliebig oft + = Min/Max-Quantor {1,}, mind. einmal, oder beliebig oft |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Nö, falsch würde ich sagen .* ist generell greedy ohne Parameter U .*? ist generell ungreedy ohne Parameter U .*? ist generell greedy mit Parameter U .* ist generell ungreedy mit Parameter U ebenso .+ bzw. .+? (Unterschied: * = 0-n , + = 1-n) ein U entspricht also dem Verfahren hinter jedes 0-n oder 1-n Zeichen erkennende 'Literal' ein ? zu setzen generell sind ausdrücke ohne U immer gierig, an jeder Stelle. deshalb ist es oft sinnvoller, das Such-Zeichen wenn möglich einzuschränken, z.B. statt Code: #<u>(.*?)</u># Code: #<u>([^<]*)</u># Code: #<([^>]+)>([^<]*)</\1># |
| |
| | |
| Erfahrener Benutzer | Gibs ma ne Pauschalninfo? Also soweit ich das grad ma verstanden habe is CIX vollkommen falsch. Der Modifierier U markiert eine RegEx als lazy. Insofern wär das genannte eh falsch. Aber unabhängig davob versteh ich die Kombination von (.*?) und U nicht, da sie doch irgendwo das selbe darstellen
__________________ Nicht jeder Fehler ist ein Bug. |
| |
| | ||||
| Gast
Beiträge: n/a
| Zitat:
Zitat:
Dann prägt sich das besser ein. Zitat:
Eigentlich braucht man den Modifer U gar nicht. Mit dem Modifer U kann man allerdings auf die Fresse fliegen, wenn man im Suchpattern nach unterschiedlichen greedy und ungreedy suchen muss. | |||
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| hilfe bei preg_match suchmuster | M0J01812 | PHP Tipps 2008 | 3 | 27.08.2007 09:47 |
| Array durchsuchen mit suchmuster ? | cytrobic | PHP Tipps 2006 | 2 | 23.08.2006 14:28 |
| ereg_replace - Sonderzeichen als Suchmuster | NetLook | PHP Tipps 2006 | 5 | 26.04.2006 20:32 |
| preg_replace ersetzt auch falsche Suchmuster | ruferp | PHP Tipps 2006 | 1 | 10.04.2006 16:17 |
| 2 Suchmuster für Satz?! | Broadcast | PHP Tipps 2006 | 8 | 12.01.2006 19:07 |
| Suchmuster: "wenn nicht" | PHP Tipps 2006 | 3 | 05.01.2006 14:18 | |
| Suchmuster | hunzi | PHP-Fortgeschrittene | 4 | 05.01.2006 12:16 |
| suchmuster finden | {m-d} | PHP Tipps 2005 | 2 | 08.05.2005 09:19 |
| preg_replace, mixed Suchmuster, mixed Ersatz problem? | PHP Tipps 2004 | 5 | 27.10.2004 15:18 | |
| Suchmuster für URLs | PHP Tipps 2004 | 2 | 21.10.2004 08:06 | |
| Funktionen Erklärung | TheSkaterFriend | PHP Tipps 2004 | 14 | 11.06.2004 22:05 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| suchmuster php preg_match, preg_match spitze klammer, preg_match quantoren |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.