Fragen zu StringRegExp - Array in mehreren Spalten und leere Zeilen

  • Hallo zusammen,

    2 Fragen.

    1.Kann ich mit StringRegExp den Array gleich in mehreren Spalten ausgeben?

    2. WIe kann ich leere Zeilen von der StringRegExp Suche ausschließen?

    Danke und Gruß,

    horphi

  • Hallo Oscar,

    das ist doch eine allgemein gehaltene Frage.

    Kann man die so nicht beantworten?

    Ok dann Frag ich anders:
    1. Kann StringRegExp im Flag (3 -$STR_REGEXPARRAYGLOBALMATCH (3)) den Array in mehreren Spalten ausgeben? Wenn ja -> Gibt es einen allgemein gültigen Ausdruck, der die in Klammern gesetzten Werte in einem 2D Array listet?

    2. Hab ich mir schon selbst beantwortet --> (^\s)

    DAnke und Gruß,

    horphi

  • Nun ja, das erklärt sich wahrscheinlich von selbst. Da ich mir aber nicht sicher war, da ich RegEx jetzt erst einigermaßen verstanden habe, wollte ich noch mal nachfragen. Mein "googl´n" hat dazu auch nichts ergeben...

    Jeder Ausdruck wird doch durch Klammern oder Zeilenumbrüche getrennt, aber nicht in Spalten zerlegt. -> Also nur eine Spalte.

    Somit kann ich das wahrscheinlich nur mit einer nachgelagerten, verschachtelten StrintoArray/StringExplode Funktion bewerkstelligen, oder??

    VG

    horphi

    • Offizieller Beitrag

    das ist doch eine allgemein gehaltene Frage.

    Kann man die so nicht beantworten?

    In Sachen RegExp - eher NEIN. Reguläre Ausdrücke beziehen sich immer auf ganz spezielle Einsätze (z.B. Selektieren von eMail-Adressen etc.). Es geht darum ein Muster zu erkennen, welches über den regulären Ausdruck definiert wird. Und eben deshalb benötigt man immer einen Anwendungsfall und kann keine "allgemeinen" Fragen lösen. ;)

  • un ja ich möchte href:"a href:"b und href:"c jeweils finden und nebeneinander in einem Array schreiben.

    ?
    Welcher String?
    Welches Pattern?

    Ist es denn wirklich so schwer einfach mal ein minimales Beispiel zu posten?`
    In dem von dir verlinkten Thread welcher deiner Meinung nach die Lösung darstellen soll will der Threadersteller die Matches als Zeilen und die Capturing Groups der Matches als Spalten.
    Die Lösungen dort sind aber arg abenteuerlich.
    Der bessere Ansatz wäre es mit Flag 4 bei StringRegExp zu arbeiten.
    Dann wird nämlich ein Array in Array erstellt.
    Das kann man einfach in ein 2D-Array überführen.

    Nun aber wie gesagt die Frage nach dem konkreten Anwendungsfall.
    Die Anzahl der Capturing-Groups pro Match muss nicht konstant sein - ein 2D-Array kann dann dort also nicht mehr funktionieren.
    Außerdem wäre ein Array-In-Array eventuell sowieso besser für deinen Anwendungsfall.
    Kann aber alles kein Mensch wissen wenn du dich weigerst ein konkretes Beispiel zu posten.

  • Hallo AspirinJunkie,

    ich habe noch kein gutes Script.
    Bisher probiere ich die Daten zu extrahieren, um href und title in einen 2D Array zu übergeben.


    VG

    horphi

  • Meine Frage beginnt schon viel weiter unten.
    Du willst eine Lösung wie man die Links in ein 2D-Array presst. Meine Frage hingegen ist: Warum muss es ein 2D-Array sein - was hast du dann schlussendlich damit vor?
    Vielleicht (und auch sicherlich) gibt es eine bessere Lösung für dein eigentliches Vorhaben welches du uns leider nicht verrätst.
    Dieses um das eigentliche Problem drumherum reden ist auch als XY-Problem bekannt: Klickmich

    Paare aus Link und Beschreibung bekommt man eigentlich ganz einfach hin:

    AutoIt
    $s_Source = BinaryToString(InetRead("http://www.fliegmituns.de/geschenke-shop/tragschrauber-gyrocopter-rundfluege"), 4)
    
    
    For $a_Link in StringRegExp($s_Source, '<a [^>]*?href="(.+)" [^>]*?title="(.+?)"', 4)
    	If MsgBox(1,"", 'www.fliegmituns.de' & $a_Link[1] & @CRLF & @CRLF & $a_Link[2]) = 2 Then ExitLoop
    Next
  • Hallo AspirinJunkie,

    danke für dein Hilfe.

    Ich möchte:

    1. Die Städte aus dem Link lesen
    2. in einer GUI anzeigen
    3. als CSV exportieren
    4. in eine SQ-Lite DB schreiben, um beim nächsten mal zu gucken, ob eine Stadt dazugekommen ist

    Ich stehe damit noch ganz am Anfang und arbeite mich durch.

    Ich versuche mich "Kapitelweise" dadurch zuarbeiten und die einzelnen UDF´s dabei zu verstehen und einzusetzen.

    VG

    horphi