Neue Zeile (RexEx) \n \r

  • Hallo zusammen,

    jetzt habe ich mehrere Stunden regEx hinter mir.
    Alles noch etwas wackelig, aber egal.

    Aber jetzt brauche ich mal wieder Hilfe:
    (Text einfach in die Zwischenablage kopieren)
    Meine Gehversuche: (simples Beispiel)

    [autoit]


    #include <array.au3>
    ;Zwischenablage = "hier steht Text <p>Dackel</p><p>Pudel</p><p>Collie</p> id="HundeForm"
    ;Zwischenablage = "hier steht Text <p>Terrier</p><p>Dogge</p><p>Spitz</p> id="HundeForm"
    $string = ClipGet()

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

    $aArray = StringRegExp($string,"<p>(.*)</p>",3)
    _ArrayDisplay($aArray)

    [/autoit]

    Meine Frage:
    Wie kann man in der RegExSuche nach dem Suchergebnis einen Zeilenumbruch machen?
    Mit \n oder \r oder @LF bin ich nicht weitergekommen.

    So sollte es aussehen:

    Spoiler anzeigen


    Dackel
    Pudel
    Collie...


    Hoffe die Profis haben etwas Einsehen mit mir!

    Grüße
    Ilse ;)

    • Offizieller Beitrag
    Zitat von Ilse

    Meine Frage:
    Wie kann man in der RegExSuche nach dem Suchergebnis einen Zeilenumbruch machen?
    Mit \n oder \r oder @LF bin ich nicht weitergekommen.

    Naja, die richtig Frage wäre gewesen:

    Wie bekomme ich die richtigen Treffer, mein Pattern ist falsch? :evil:

    Sorry, das mußte jetzt sein. Ich kann mich gelegentlich über die Fragenstellung kaputlachen. :D:rofl:

    Edit: Ilse, ich würde dir mal dringend nahelegen das StrinRegExp Tutorial von SEuBo anzusehen: https://autoit.de/index.php?page=Thread&amp;threadID=19071

    Edit2: Hab eben im andern Thread gelesen das du am Tut dran bist, fleißig weiterbüffeln :thumbup:

  • @alle

    Könnt Ihr bitte nochmal drüberschaun?

    [autoit]


    #include <array.au3>
    #include <String.au3>
    #include <file.au3>
    Dim $aQuelltext
    Dim $aArray
    InetGet("http://www.hunde.de", @ScriptDir & "\hunde.htm", 1)

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

    If Not _FileReadToArray("hunde.htm", $aQuelltext) Then
    MsgBox(4096, "Error", " Error:" & @error)
    Exit
    EndIf
    _ArrayDisplay($aQuelltext) ; Das Original
    $aArray = StringRegExp($aQuelltext,"href=(.*)",3)

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

    _ArrayDisplay($aArray) ; Die Bearbeitung zeigt kein Ergebnis

    [/autoit]

    :huh: Ilse

    • Offizieller Beitrag

    Wenn kein Mensch weiß was du wirklich suchst, dann kann dir auch keiner helfen.
    Das Pattern findet nichts und nur wenn wir wissen was es finden soll, können wir dir auch ein Pattern erstellen.


    Edit und das was i2c gesagt hat auch noch dazu.

    Wie jedes einzelne Arrayelement behandelt wird, solltest du nach zig Threads zum gleichen Thema eigentlich wissen.
    Dein StringRegExp ersetzt das _StringBetween aus den letzten Threads.

  • also,
    ich suche im Quelltext diese Adressen

    <a href="http://www.katzen.de" target="_blank" class="

    Spoiler anzeigen

    Der Code

    [autoit]


    #include <array.au3>
    #include <String.au3>
    #include <file.au3>
    Dim $aQuelltext
    Dim $aArray
    InetGet("http://www.hunde.de", @ScriptDir & "\hunde.htm", 1)

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

    If Not _FileReadToArray("hunde.htm", $aQuelltext) Then
    MsgBox(4096, "Error", " Error:" & @error)
    Exit
    EndIf
    _ArrayDisplay($aQuelltext) ; Das Original
    $Ergebnis = StringRegExp($aQuelltext,'href=(.*)" target',3)

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

    Msgbox (0,"",$Ergebnis)

    [/autoit]


    ...kann jetzt nicht mehr klar denken!

    :huh: Ilse

  • Spoiler anzeigen
    [autoit]

    #include <array.au3>

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

    $sSource= BinaryToString(inetread("http://www.hunde.de",8),4)
    $aResult = StringRegExp($sSource,'href="(.*?)"',3)
    _ArrayDisplay($aResult,"alle Links")

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

    $aResult = StringRegExp($sSource,'href="(.*haustiere.de.*?)"',3)
    _ArrayDisplay($aResult, "haustiere.de")

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

    $aResult = StringRegExp($sSource,'href="(.*katzen.de.*?)"',3)
    _ArrayDisplay($aResult, "katzen.de")

    [/autoit]
  • Zitat von Ilse

    also,
    ich suche im Quelltext diese Adressen

    <a href="http://www.katzen.de" target="_blank" class="


    Wenn du nur wissen willst ob es drin ist benutz

    [autoit]

    StringinStr()

    [/autoit]
  • i2c
    Danke, das klappt!
    Wieso verwendest du das:

    Spoiler anzeigen


    $sSource= BinaryToString(inetread("http://www.hunde.de",8),4)
    statt
    InetGet("http://www.hunde.de", @ScriptDir & "\hunde.htm", 1)

    @Raupi,
    Ich ignoriere doch nicht... ;)
    ich probiere...

    Spoiler anzeigen


    #include <array.au3>
    #include <String.au3>
    #include <file.au3>


    InetGet("http://www.hunde.de", @ScriptDir & "\hunde.htm", 1)


    $Test = FileRead(@ScriptDir&"\"&"hunde.htm")
    Msgbox (0,"Die Quelldatei",$Test)
    $Ergebnis = StringRegExp($Test,"href=(.*)",3)

    Msgbox (0,"Das Ergebnis",$Ergebnis)

    Diesmal ohne Arrays ...
    Wieso diesmal nicht?

    ;) Ilse
    @ Raupi...Jetzt sei wieder nett zu mir! :rolleyes:

    • Offizieller Beitrag
    Zitat von Ilse

    Diesmal ohne Arrays ...
    Wieso diesmal nicht?

    Du kannst ein Array nicht in der MsgBox anzeigen lassen.

    StringRegExp gibt ein Array zurück!!!!!!!
    Zum Anzeigen benutzt man _ArrayDisplay.

    Zitat von Ilse

    i2c
    Danke, das klappt!
    Wieso verwendest du das:

    Weil er sich das Abspeichern der Datei damit spart.

  • Hallo Raupi,

    ..das hatte ich verwechselt, falsch verstanden...

    StringRegExp gibt ein Array zurück!!!!!!!
    Zum Anzeigen benutzt man _ArrayDisplay.

    oh Gott....

    Ich brauch jetzt ne Pause!

    DANKE!

    Liebe Grüße
    Ilse ;)