reg. Ausdrücke & preg_replace
Robert
- php
Hi!
Warum bekomm ich hier nicht die Ausgabe:
"Test 1
Test 2
Test 3", sondern
"Test []
Test []
Test[]ennen solll
das[] ist ein nicht erkanntes Zeichen, im Original sieht das so aus:
http://www.avant.at/phpprob.php
Quellcode:
<?php
$text = "Dies ist ein Test, der alle 3er und 2er,
aber auch die 1 erkennen soll";
$text = preg_replace('=Dies (.*)alle (.)(.*)d (.)er(.*)die (.*) erk(.*)=Uis',
"Test \6<br>Test \4<br>Test\2", $text);
echo $text;
?>
DANKE
Robert
Hi Robert,
Du musst entweder single quotes verwenden, oder den Backslash
jeweils durch einen weiteren Backslash escapen.
Innerhalb von double quotes wird die Sequenz \n als Zeichen in Oktal Notation interpretiert.
Viele Grüße
lulu
danke
aber trotzdem passts noch nicht ganz :-(
Ausgabe:
"Test 1
test 2
Test3ennen soll"
danke
Robert
gudn tach!
aber trotzdem passts noch nicht ganz :-(
Ausgabe:
"Test 1
test 2
Test3ennen soll"
wegen des U-modifiers matcht das letzte (.*) nix...
vermutlich willst du sowas:
$text = preg_replace('=Dies .*alle (.).*d (.)er.*die (.*) erk.*$=Us', 'Test $3<br>Test $2<br>Test$1', $text);
prost
seth
Hi!
Ich dachte U bedeuted nur ungreedy und i caseless?
sogesehn müsst das doch funktionieren?
thx
Robert
gudn tach!
Ich dachte U bedeuted nur ungreedy
eben. du moechtest aber eigentlich, dass der letzte teil greedy ist.
und i caseless?
case-insensitive; der modifier war im beispiel aber ueberfluessig.
prost
seth