Das ? soll PRCE auf greedy stellen
Regulärer Ausdruck: Speicherprobleme?
Einklappen
X
-
-
Hab es mit .+ getestet und .*, kein Effekt, die Expr funzt ja wunderbar bei ein wenig kleineren Strings.
Zum testen:
PHP-Code:$result['body'] = "nobr(hallo);";
$result['body'] = "nobr(".str_repeat("w",100000).");";
preg_match("#(.*)nobr\((.+?)\);(.*)#is",$result['body'], $match);
print_r($match);
Zuletzt geändert von Seikilos; 21.10.2008, 06:53.
Kommentar
-
Was willst du denn danach damit machen?
Eventuell wäre der Modifier e etwas für dich.
Ansonsten schreib dir was mit String-Funktionen/explode und mach es von Hand.
Der Regex ist ja jetzt nicht wirklich kompliziert.
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
-
Original geschrieben von Seikilos
Das ? soll PRCE auf greedy stellen
Standardmäßig sind Quantifikatoren gierig und ? negiert das. Dein ? stellt also nicht auf greedy sondern auf ungreedy. Und das ist auch sinnvoll für deinen Zweck.
Kommentar
-
Was auch noch geht wäre preg_split mit PREG_SPLIT_DELIM_CAPTURE.
Dann könntest du vorne und hinten dir das .* schenken, das würde den Regex schon mal leichter machen.
Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!
bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
Wie man Fragen richtig stellt
Kommentar
Kommentar