Regexp und (un)greedy

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Regexp und (un)greedy

    ich hab mal zum test nen kleines script geschrieben dass ähnlich dem forencode aus [ b] und [ /b] (natürlich ohne leerzeichen) ein <b> und </b> macht.
    schreibe ich jetzt einen testtext:

    [ b]bla[ /b] [ b]bla2[ /b]

    dann gibt es zwei möglichkeiten diesen mit ungreedy zu behandeln:
    PHP-Code:
    $text preg_replace("#\\[b\\](.*?)\\[/b\\]#si",'<b>\\1</b>',$text); 
    oder
    PHP-Code:
    $text preg_replace("#\\[b\\](.*)\\[/b\\]#siU",'<b>\\1</b>',$text); 
    der unterschied liegt in dem fragezeichen und dem U. die frage ist jetz, warum behandelt er beide als ungreedy bzw. warum funktioniert
    PHP-Code:
    $text preg_replace("#\\[b\\](.*?)\\[/b\\]#siU",'<b>\\1</b>',$text); 
    nicht als ungreedy und was ist der unterschied zwischen den oberen beiden?

  • #2
    http://www.dclp-faq.de/q/q-regexp-gierig.html

    Kommentar

    Lädt...
    X