RegExp (ich verzweifle...)

  • Hallo!

    Ich hoffe Ihr könnt mir helfen, denn das RegExp treibt mich noch in den Wahnsinn.

    Folgendes Problem habe ich:

    [autoit]


    msgbox (0 , "" , (stringregexp ("genau123" , ".*au", 0 )))

    [/autoit]

    Autoit sagt mir das das Suchmuster übereinstimmt (so weit hat er ja auch recht) nur ich brauche den rechten Teil nach (au) nicht. Daher stimmt das Ergebnis für mich nicht!
    Frage: Wie kann ich im RegExp sagen das nach dem "au" nichts mehr stehen darf und daher die Antwort falsch ist?
    Ich hoffe ich habe das nicht zu schlecht beschrieben was ich möchte!

    Beispiel:

    stringregexp ("genau123" , ".*123", 0 ....true
    stringregexp ("genau123" , ".*au123", 0 ....true
    stringregexp ("genau123" , ".*genau", 0 ....false (da ja im Suchstring hinten noch 123 steht)

    vielen Dank

    lg
    Racer

    --------------------------------------------------------------------------------------------------------

    Fast habe ich die Nerven weggeschmissen, doch im letzten Moment habe ich die Lösung gefunden:

    [autoit]

    msgbox (0 , "" , (stringregexp ("genau123" , ".*au\b", 0 )))

    [/autoit]

    Durch das \b wird "exakt" gesucht.....

    2 Mal editiert, zuletzt von Racer (27. Mai 2014 um 11:02) aus folgendem Grund: Hilfe selbst gefunden

  • "\b" sagt aus, dass hinter au3 eine Wortgrenze kommen muss.
    Wenn dein String also z.B. "blau rot" ist, wird trotzdem eine 1 zurückgegeben obwohl der Gesamtstring nicht auf au endet.
    Wenn du dies stattdessen erreichen möchtest musst du festlegen, dass hinter "au" das Stringende kommen muss.
    Das macht man mit "$" - also als Pattern "au$"

    Einmal editiert, zuletzt von AspirinJunkie (27. Mai 2014 um 15:19)