Regex-Problem

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

  • Regex-Problem

    Hi,

    für ein Script muss ich mich leider mit Regex auseinander setzen. Genauer gesagt möchte ich den Inhalt bestimmter HTML-Elemente einer dynamischen Seite auslesen. Wenn einer eine bessere Idee hat, nur her damit

    Das genau ist jetzt mein Problem:
    In der mit cURL geladenen Seite möchte ich dies herausfiltern:
    HTML-Code:
    <li><span>???</span></li>
    <li class="skip">
    An sich ja gar kein Problem.
    PHP-Code:
    $string '<li><span>[B][I]???[/I][/B]</span></li>
    <li class="skip">'
    ;
    preg_match('@.*<li><span>(.*)</span></li>.<li class="skip">.*@',$string,$matches);
    print_r($matches); 
    Den Punkt habe ich eingefügt um den Zeilenumbruch anzukündigen. Man hätte bestimmt auch \n oder so schreiben können, ich war mir aber nicht sicher^^

    Als Ausgabe erhalte ich aber nur "Array ( )" :S

    Was habe ich falsch gemacht?

    LG

  • #2
    Zitat von bauerj Beitrag anzeigen
    Den Punkt habe ich eingefügt um den Zeilenumbruch anzukündigen.
    Dabei hast du aber nicht berücksichtigt, dass der Punkt per Default alles außer newlines matched, sowie das je nach System ein Zeilenumbruch durch mehr als ein Zeichen dargestellt wird.

    PHP: Meta-characters - Manual
    PHP: Possible modifiers in regex patterns - Manual
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ah, genau Ich habe \n natürlich schon probiert, aber es hat nicht geklappt. Jetzt weiß ich wieso:
      da[...] je nach System ein Zeilenumbruch durch mehr als ein Zeichen dargestellt wird.
      Ich habe jetzt also \r\n für einen Windows-Zeilenumbruch genommen Jetzt klappt es.

      Danke

      Kommentar


      • #4
        Vermutlich würde auch \s* den gewünschten Effekt erzielen, unabhängig von der Kodierung des Zeilenumbruchs.

        - PHP: Escape sequences - Manual

        Kommentar


        • #5
          Warum verwendest du nicht einfach einen HTML-Parser? Warum der umständliche, unzuverlässige Weg über Regex?

          Kommentar

          Lädt...
          X