StringRegExp

  • Hallo liebe AutoIT Community ,


    Brauche beim folgenden Problem Hilfe


    Ich möchte alle Zahlen bei atype auslesen kriege es aber leider nicht hin.

    Hätte jemand ein Ratschlag für mich?

  • Ich möchte alle Zahlen bei atype auslesen kriege es aber leider nicht hin.

    Code
    #include <Array.au3>
    $ret = StringRegExp("bla'action=collect&atype=1',bla'action=collect&atype=3',bla'action=collect&atype=2',bla'action=collect&atype=1',", "bla.+?&atype=(\d+)",3)
    _ArrayDisplay($ret)

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Danke für die Hilfe.


    Habe jetzt mal etwas gelesen und Probiert jedoch komme ich trz nicht weiter...

    Möchte jetzt nur die Zahl hinter Test haben wenn davor im Satz beim Ist eine 1 ist also "is1t"


    Code
    "213Das "is1t" 'ein' Test32" "253Das "ist" 'ein' Test332" "23Das "ist" 'ein' Test342" "237Das "is1t" 'ein' Test32" "283Das "ist" 'ein' Test312"
  • Hi,

    Wie AspirinJunkie schon ausgeführt hat, ist deine Konstruktion mit .* SUBOPTIMAL, da gierig (greedy)!

    Gierig heißt, es werden die maximal möglichen folgenden Zeichen gefressen, ergo in deinem Beispiel alle bis zum Ende...


    Was du brauchst ist der lazy-Token, in dem Fall das Fragezeichen -> ?

    Also ersetze .* durch .*? und dein Regex gibt das gewünschte Ergebnis zurück!


    https://regex101.com/r/MEqQyC/2

  • Möchte jetzt nur die Zahl hinter Test haben wenn davor im Satz beim Ist eine 1 ist also "is1t"

    Code
    "213Das "is1t" 'ein' Test32" "253Das "ist" 'ein' Test332" "23Das "ist" 'ein' Test342" "237Das "is1t" 'ein' Test32" "283Das "ist" 'ein' Test312"

    Ich weiß nicht, ob is1t ein Tippfehler ist und es eigentlich ist1 heißen soll.

    Außerdem sind die einfachen und doppelten Anführungszeichen nicht korrekt gesetzt, sofern das als ein String gedacht ist.


    Ggf. ist es von Dir ja so gemeint :

    AutoIt
    #include <Array.au3>
    Local $sText = "213Das is1t 'ein' Test32 253Das ist 'ein' Test332 23Das ist 'ein' Test342 237Das is1t 'ein' Test32 283Das ist 'ein' Test312"
    $ret = StringRegExp($sText, "(?i)is1t.*?Test(\d+)", 3)
    _ArrayDisplay($ret)

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi () aus folgendem Grund: typo