Regex Pattern Problem

  • Hallo,

    ich schaff es einfach nicht per RegEx
    meinen Quelltext in Spalten aufzuteilen.

    Geht das überhaupt, daß man mit einem Suchmuster die Felder in Columnen bekommt.

    Hier mal der Quellcode HTML

    Spoiler anzeigen


    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    </head>
    <body>
    <div xmlns="http://www.w3.org/1999/xhtml" sig="_W6"
    pved="0CDQQkgowAA" class="vsc">
    <h3 class="r"><a
    onmousedown="return rwt(this,'','','','1','AFQjCNHapYlchDkyCxMysJHTSG-nWhLreQ','','0CDcQFjAA',null,event)"
    class="l"
    href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;sqi=2&amp;ved=0CDcQFjAA&amp;url=http%3A%2F%2Fwww.tieranzeigen.at%2Fhunde%2Fhundewelpen%2F&amp;ei=T-svT_bRDYLLsgaoo83nDA&amp;usg=AFQjCNHapYlchDkyCxMysJHTSG-nWhLreQ"><em>Hundewelpen</em>
    B&ouml;rse: Hundebabys, <em>Hunde Welpen</em></a></h3>
    <div class="vspib" aria-label="Result details"
    role="button" tabindex="0">
    <div class="vspii">
    <div class="vspiic"></div>
    </div>
    <div class="s">
    <div class="f kv"><cite>https://autoit.de/www.tieranzeigen.at/hunde/<b>hundewelpen</b>/</cite><span
    class="vshid"><a
    onmousedown="return rwt(this,'','','','1','AFQjCNFVn1_qy4fb2_VdyCQDYWp1ytOS2w','','0CD8QIDAA',null,event)"
    href="http://webcache.googleusercontent.com/search?q=cache:9zzeN9ocMocJ:https://autoit.de/www.tieranzeig…amp;amp;ct=clnk">Cached</a>
    - <a
    href="/search?hl=en&amp;biw=1400&amp;bih=680&amp;q=related:https://autoit.de/www.tieranzeig…p;ved=0CEAQHzAA">Similar</a></span><span
    class="std"> <span class="gl">-</span> <a
    class="fl"
    href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;u=http://www.tieranzeigen.at/hunde/hundewelpen/&amp;ei=T-svT_bRDYLLsgaoo83nDA&amp;sa=X&amp;oi=translate&amp;ct=result&amp;resnum=1&amp;sqi=2&amp;ved=0CD0Q7gEwAA&amp;prev=/search%3Fq%3Dhundewelpen%26hl%3Den%26biw%3D1400%26bih%3D680%26prmd%3Dimvns">Translate
    this page</a></span></div>
    <div style="display: none;" id="poS0" class="esc slp">You
    +1'd this publicly. <a class="fl" href="#">Undo</a></div>
    <span class="st">&Uuml;ber 1255 <em>Hundewelpen</em>
    Kleinanzeigen aus &Ouml;sterreich und Deutschland. Tiere/<wbr>Tierbedarf
    geb&uuml;hrenfrei kaufen und verkaufen. Mehr als 4720 Hunde <b>...</b><br>
    </span>
    <div class="osl"><a
    onmousedown="return rwt(this,'','','','1','AFQjCNFc_fiFDZIg-tvPygrCsQ2fi-xxLA','','0CDgQ0gIoADAA',null,event)"
    href="http://www.tieranzeigen.at/hunde/hundewelpen/index.php?weiter=40">Gratis
    Hundewelpen, Viele ...</a> - <a
    onmousedown="return rwt(this,'','','','1','AFQjCNF8DpFTuLU0_ncRV1fSNzQRYebHOQ','','0CDkQ0gIoATAA',null,event)"
    href="http://www.tieranzeigen.at/hunde/hundewelpen/index.php?weiter=10">Hund
    Welpen B&ouml;rse ...</a> - <a
    onmousedown="return rwt(this,'','','','1','AFQjCNHryC79KnPy5yn3QP8cUQyqAs8FJQ','','0CDoQ0gIoAjAA',null,event)"
    href="http://www.tieranzeigen.at/hunde/chihuahua/">Chihuahua</a>
    - <a
    onmousedown="return rwt(this,'','','','1','AFQjCNHm6f51vAGsbyFiUq5U2uhe9DxHQw','','0CDsQ0gIoAzAA',null,event)"
    href="http://www.tieranzeigen.at/hunde/husky/">Husky</a></div>
    </div>
    </div>
    </div>
    </body>
    </html>

    Zum testen einfach diesen Code in die Zwischenablage kopieren und dann das Skrift starten

    Mein Code: (geht aber nicht...)

    [autoit]


    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Msgbox(0,"","Quelltext in Zwischenablage?",2)
    $sSource = Clipget()

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $aResult = StringRegExp($sSource,'class="l" href="(.*?)"',3)

    [/autoit][autoit][/autoit][autoit]

    For $i = 0 To UBound($aResult) - 1
    MsgBox(0, "RegEx " & $i, $aResult[$i])
    Next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    Sollte so aussehen:

    1. Überschrift 2. Link 3. Text

    Ich bekomms einfach nicht hin. Auch nicht mit _Arraydisplay (Spalte 1,2,3)

    Liebe Grüße
    Ilse ;)

  • RegExr kann ich zudem auch nur wärmstens epfehlen.
    Ich hab es mir angewöhnt immer die Zeilenumbrüche und sämtliche Double Spaces mit den zwei StringStrip Befehlen zu eliminieren.
    Ich hab dann keinerlei Probleme mehr mit RegExp bei Quelltexten von Seiten....

  • Hallo,

    merci für deine Hilfe.
    Erhalte leider kein Ergebnis.

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Msgbox(0,"","Quelltext in Zwischenablage?",2)
    $sSource = Clipget()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $aResult = StringRegExp($sSource,'<a.*?class="l".href="(.*?)">',3)

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($aResult) - 1
    MsgBox(0, "RegEx " & $i, $aResult[$i])
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]

    Meine Frage:

    Wie kann man eine Suchanfrage bilden
    die die alle Ergebnisse in den Spalten in _Arraydisplay darstellt?

    Ich meine irgendwie so:

    $aResult = StringRegExp($sSource,'<a.*?class="l".href="(.*?)"> <a.*?class="l".href="(.*?)"> <a.*?class="l".href="(.*?)"> ',3)

    ...das Regex stimmt natürlich nicht (da liegt mein Problem)
    also z.B.

    Blau = Überschrift
    Rot = Link
    Grün = Text

    und das als _Arraydisplay dargestellt:

    Überschrift | Link | Text

    Liebe Grüße
    Ilse ;)

  • Hallo,

    habe mal das probiert:

    [autoit]


    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Msgbox(0,"","Quelltext in Zwischenablage?",2)
    $sSource = Clipget()

    [/autoit][autoit][/autoit][autoit]

    $sSource = (StringReplace(StringStripCR($sSource), @LF, ""))
    $aResult = StringRegExp($sSource,'<a.*?class="l".href="(.*?)">',3)

    [/autoit][autoit][/autoit][autoit]

    For $i = 0 To UBound($aResult) - 1
    MsgBox(0, "RegEx " & $i, $aResult[$i])
    Next

    [/autoit][autoit][/autoit][autoit][/autoit]

    Hänge aber immer noch an den Spalten...

    Liebe Grüße
    Ilse ;)