StringRegExp die 2

  • hi Leute
    ich hab mal wieder ein Problem mit Stringregexp. Und zwar möchte ich gerne komplette http Strings auslesen.

    Spoiler anzeigen

    [Test]
    NumberOfEntries=1
    File1=http://www.isetta.de:8000/
    File2=http://www.Jaguar.de:8000/

    soweit so gut hab das mit folgendem Code auch hinbekommen

    [autoit]

    "(?i)\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]"

    [/autoit]


    in RegexBuddy funktioniert das auch ohne Probleme nur in Autoit bekomm ich einfach nicht das erwünschte Ergebniss.

    Einmal editiert, zuletzt von Rodny_le_lude (12. April 2010 um 13:57)

  • Füg mal

    Code
    ?:

    vor https? ein.
    Sprich:

    Code
    (?i)\b(?:https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]

    Du hast mit den Klammern ein Subpattern erstellt. Da Flag 3 aber nicht das volle Match, sondern nur die Subpattern anzeigt hast du 2 Möglichkeiten:
    1. Flag 4 benutzen. Dann bekommst du einen Array als Ergebnis, in dem weitere Arrays mit vollem Match sowie Subpatterns sind.

    Ooooder

    2. Du erstellst statt dem fangenden Klammerpaar (...) einfach ein nicht-fangendes (?:...), und kein Subpattern wird erstellt.
    (Das hat zur Folge, dass Flag 3 nichts anderes übrig bleibt, als die vollen Matches zu zeigen.)


    Achso: Auch der Buddy zeigt dir die Subpatterns:
    "List All"-Knopf -> List all matches with full Details
    Dann kannst du im untersten Feld die Matches "ausklappen".