stefan33
16.08.2012, 18:41:18
Witam
Od godziny sie z taka glupota mecze i nie moge dociec czemu preg_match daje false. Bardzo prosze o pomoc
Oto wzór:
preg_match("/\[autor='*'\]/","[autor='gostek']") //false (dlaczego?)
dodaje(dla ulatwienia)
preg_match("/\[autor='*'/","[autor='gostek']") //true(po usunięciu \] z wzoru
abort
16.08.2012, 18:49:21
Gwiazdka oznacza: dopasuj dowolną (zero lub więcej) ilość znaków poprzedzających mnie.
czyli:
'*' oznacza: dopasuj zero lub więcej apostrofów, po którym jest apostrof. Więc dopasował sobie , że pierwszy apostrof pasuje do całego '*' (gwiazdka w tym wypadku robi za dopasowanie ZERA znaków). A Ty nie masz za pierwszym apostrodem znaku ']', prawda?
matchuj '.*' - apostrof, potem dowolny ciąg znaków i znowu apostrof. Wtedy zwróci pięknie to, co potrzebujesz.
Drugi regexp (ten bez "\]) sprowadza się de facto do "/\[autor='/" - a to pasuje.
abort
16.08.2012, 18:54:12
nie ma sprawy. Przy okazji: pomyliłem się nieco w tłumaczeniu, nie wiem czy przeczytałeś już poprawioną wersję wytłumaczenia.
stefan33
16.08.2012, 18:58:56
hehe spoko jest ok wszystko, jeszcze raz dzieki