Mailinglisten-Archive |
hi, >habe jetzt den /U ungreedy modifier gefunden. folgendes regexp muesste >den string $string = "ABaA" >umwandeln in $string ="0BaA": > >$final = preg_replace("/A/Ui","0",$string); > >das tut er aber nicht. >ich bekomme $string = "0B00". >der Ungreedy-Modifier scheint ueberhaupt nicht zu funken. das ist auch logisch so, weil preg_replace() in der form wie du es verwendest alle vorkomnisse des patterns ersetzt. der U modifier hat damit nichts zu tun. wenn du begrenzen willst, wie viele vorkomnisse ersetzt werden sollen, dann mußt den optionalen 4. paramter von preg_replace() verwenden. siehe http://www.php.net/manual/en/function.preg-replace.php außerdem wird in deinem pattern "/A/Ui" durch den i modifier signalisiert, daß groß/kleinschreibung ignoriert wird. also matcht dein ausdruck sowohl "A" als auch "a". mit $final = preg_replace("/A/", "O", $string, 1); sollte es klappen. florian.
php::bar PHP Wiki - Listenarchive