Ankündigung

Einklappen
Keine Ankündigung bisher.

preg_match_all

Einklappen

Neue Werbung 2019

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

  • preg_match_all

    Hallo,

    ich versuche eine HTML-Datei mit preg_match_all zu parsen.
    Ich möchte all das erhalten, was mit [...] gekennzeichnet ist:

    <div class="abc">
    [...]
    </div>
    <div class="abc">
    [...]
    </div>
    </body>

    Das Problem ist, wie gebe ich das Ende von <div class="abc"> an, wenn <div> und </div> auch innerhalb von [...] vorkommen kann. Ich kann nur sicherstellen, daß das Ende des Blocks erreicht ist, wenn entweder:

    <div class=abc"> oder </body> vorkommt. Schreibe ich aber <div class="abc"> an das Ende des Suchpattern, dann wird der nächste Block nicht gematched.

    Wie kann man das lösen?

    VG,
    root66

  • #2
    Wie sieht denn dein aktuelles Pattern dafür aus? Wenn die Struktur der Daten so ist, wie du sie beschrieben hast, kann das theoretisch hinhauen.

    Ansonsten wäre eine Alternative, einen HTML-Parser zu nutzen.

    - http://php.net/manual/en/book.dom.php

    Kommentar


    • #3
      Zitat von root66 Beitrag anzeigen
      Schreibe ich aber <div class="abc"> an das Ende des Suchpattern, dann wird der nächste Block nicht gematched.

      Wie kann man das lösen?
      Mit einer Lookahead Assertion.

      Kommentar


      • #4
        Zitat von ChrisB Beitrag anzeigen
        Mit einer Lookahead Assertion.
        Vielen Dank, hat geklappt!

        Kommentar

        Lädt...
        X