preg_match_all() ignoriert multiple Muster in einer Zeile

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

  • preg_match_all() ignoriert multiple Muster in einer Zeile

    Tag,

    ich habe folgenden String:

    jepphtml(fdcxbhfgh)

    gibsihmhtml(jau)hulla

    sdfjb html(hulahalo) mango html(ashs)
    Darin soll die Zeichenkette html(...) mit folgenden Ausdruck gefunden werden:

    PHP-Code:
    preg_match_all("/.*(html\((.*)\)).*/"$input$html_regs); 
    Funktioniert auch soweit. Wenn ich mir jetzt aber die folgende Ausgabe des Arrays ansehen:

    Array <--- ist $html_regs
    (
    [0] => Array
    (
    [0] => jepphtml(fdcxbhfgh)
    [1] => gibsihmhtml(jau)hulla
    [2] => sdfjb html(hulahalo) mango html(ashs)
    )

    [1] => Array
    (
    [0] => html(fdcxbhfgh)
    [1] => html(jau)
    [2] => html(ashs)
    )

    [2] => Array
    (
    [0] => fdcxbhfgh
    [1] => jau
    [2] => ashs
    )

    )

    ist zu sehen, dass preg_match_all() den ersten html()-Ausdruck in Zeile 3 ignoriert, und den Treffer mit dem 2ten Ausdruck in der selben Zeile ueberschreibt. Ich hab glei bei php.net die Modifier angesehen, un dachte, PREG_MULTILINE koennte mit 'm' helfen, war aber nicht.

  • #2
    probier mal:
    Code:
    preg_match_all("/.*(html\((.*)\)).*/U", $input, $html_regs);
    Kissolino.com

    Kommentar


    • #3
      unerwartet, dass ungreedy funzt, aber danke

      Kommentar

      Lädt...
      X