Robert: reg. Ausdrücke & preg_replace

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

  1. 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

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. danke
      aber trotzdem passts noch nicht ganz :-(
      Ausgabe:
      "Test 1
      test 2
      Test3ennen soll"

      danke
      Robert

      1. 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

        1. Hi!

          Ich dachte U bedeuted nur ungreedy und i caseless?
          sogesehn müsst das doch funktionieren?

          thx
          Robert

          1. 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