preg_match Pattern Unterschied (.+) und (.*) und (.*?)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
auslese
beliebiges zeichen
code
dank
ergebnis
folgendem beispiel
frage
fragezeichen
gleiche ergebnis
liefern
match
nehmen
test
unterschied
zeichen
-
Was ist bei einem preg_match Pattern der Unterschied von (.+) und (.*) und (.*?)
... ich will alles innerhalb eines TAGs (hier
als Bsp) auslesen<title>Bla blabla blahh</title>
// --------- Test:1 --- mit (.+) ---- preg_match ("/<title>(.+)<\/title>/siU", $html_content, $matches1); echo "<br />" . $matches1[0] . "\n"; // --------- Test:2 --- mit (.*) ---- preg_match ("/<title>(.*)<\/title>/siU", $html_content, $matches2); echo "<br />" . $matches2[0] . "\n"; // --------- Test:3 --- mit (.*?) ---- preg_match ("/<title>(.*?)<\/title>/siU", $html_content, $matches3); echo "<br />" . $matches3[0] . "\n";
alles 3 liefern das gleiche Ergebnis ? ...Bla blabla blahh
... was ist der Unterschied von (.+) und (.*) und (.*?) .... und welches davon soll nich nehmen ?
Beitrag zuletzt geändert: 19.12.2012 17:18:47 von gamesfun -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ein
steht für ein beliebiges Zeichen..
Mindestens ein Zeichen, können aber auch mehrere sein+
Genau ein oder kein mal?
Beliebig oft (auch keinmal)*
Beliebig oft, ist aber nicht gierig, matcht bei folgendem Beispiel nur*?
:Bla blabla blahh
<title>Bla blabla blahh</title> <title>Blubb</title>
Ohne das Fragezeichen würde das matchen:
Bla blabla blahh</title> <title>Blubb
Beitrag zuletzt geändert: 19.12.2012 17:25:28 von thomasba -
ahhh ok, Danke
also ist als Pattern
"/<title>(.*?)<\/title>/si"
quasi das gleiche wie
"/<title>(.*)<\/title>/siU"
beide sind "nicht gierig" ... (UNGREEDY)
... einmal durch das ? innerhalb des Pattern
... anderes mal durch das U als Pattern Modifier
richtig?
... noch ne Frage zum Verständnis:
preg_match()
... liefert immer nur ein Ergebis ... egal ob UNGREEDY oder "gierig"
preg_match_all()
... kann auch mehrere Ergebnisse (im $matches Array) liefern ... wenn UNGREEDY
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage