Mailinglisten-Archive |
Tim wrote: > Hallo Yannik, > hallo Sebastian und Vitalis, > > erst einmal Danke für Eure Beiträge... > > >> preg_match_all('/<.*?(?:src|href)=(?:"|\')?([^\'"]+)(?:"|\')?.*?>/im', > > Was bedeutet denn (?:src|href) ? > oder überhaupt ?: > > (src|href) habe ich ja verstanden. Optional könnte man das ja auch > verallgemeinern, wie man unten sieht. Aber gerade das vorngestellte ?: ist > bei mir noch nicht angekommen. Gibt’s da was im Web zu genau diesem Thema? Auf www.regenechsen.de ist eine ganz nette kleine Übersicht (und übrigens auch ein gutes Tutorial). Besonders die Überischt hier ist mir immer wieder nützlich: http://www.regenechsen.de/phpwcms/index.php?regex_allg_liste das ?: direkt hinter einer sich öffnenden Klammer führt dazu, dass dieses Subpattern nicht registriert wird. Also String: abdgf regex1: ab(.)gf regex2: ab(?:.)gf Beide regexe würden auf den String passen. Doch regex1 gibt ein Subpattern zurück, in dem d steht und regex 2 tut dies nicht. > >> Sowas würde der regex aber verpatzen: >> <img src="bla'blubb"> >> mal abgesehen, dass das so nur mit dem <img>-tag uns wenigen >> Eigenschften funzt. Dieser regex sollte es aber tun: >> <(\w+)(?:\s+(\w+?)=(?(?=")"(.*?)"|(?(?=')'(.*?)'|(\w+))))*\s*(\w*) > > OK... Ich werde es mal ausprobieren... :-) Obwohl ich da eigentlich gerade > gedanklich aussteige. Irgendwann sieht man nur noch backslashes, Sterne, Punkte, Klammern und vorallem Fragezeichen *gg*. Gönn dir mal 'ne Pause, dann klappt das schon :-). > Grüße Tim > Yannik
php::bar PHP Wiki - Listenarchive