x12x13x14
27-07-2007, 21:15
Hallo,
wenn ich einen regulären Ausdruck habe..
$text = preg_replace ( "/\\[.+\\]/", "", $text );,
Wie kann ich dann sicherstellen, dass nur "[test]" in "[test] test]" ersetzt wird und gleich alles?
tontechniker
27-07-2007, 21:17
In dem du [ und ] innerhalb der Klammern ausschließt. Oder hinter das + noch ein ? setzt, damit ist das + ungierig.
x12x13x14
27-07-2007, 21:25
was heißt denn ".+?" ?? Verstehe das (noch) nicht..
zu 1) Im Ausdruck kann ja ] vorkommen, nur eben nicht ]]
tontechniker
27-07-2007, 21:34
Gier heißt, dass der Punkt auf alles matched was irgendwie möglich ist, ergo "[test] mehr test]". Das ? macht den Operator ungierig, heißt er matched nur noch auf "[test] mehr test".
x12x13x14
27-07-2007, 21:37
EDIT: HABE KEINE LUST MEHR
x12x13x14
27-07-2007, 21:38
danke, das hat mir sehr geholfen!
TriphunEM
27-07-2007, 22:58
klar. einfach bei dem startzeichen "[" auf ein zuvorkommendes leerzeichen prüfen, und das gleiche bei endzeichen nur umgekehrt
x12x13x14
27-07-2007, 23:01
Du machst es dir ja sehr einfach. -ERLEDIGT-