Regex-Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Originally posted by bauerj View Post
    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.

    Comment


    • #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

      Comment


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

        - PHP: Escape sequences - Manual

        Comment


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

          Comment

          Working...
          X