• Offizieller Beitrag

    Ich verwende häufiger Reguläre Ausdrücke. Um nicht jedes mal zum Testen auf ein externes Tool zugreifen zu müssen, habe ich diese Funktion erstellt, die die Ergebnisse (meist Arrays) gleich fertig zur Konsolenausgabe aufbereitet und mir im Fehlerfall den Fehlerwert auch gleich als Text ausgibt. Für den einfachen Check erscheint dann "MATCH!" oder "NO MATCHES" statt "1" oder "0". Ich bin da eher der "Text-Mensch" ;)

    Von den Parametern und erweiterten Rückgabewerten (@error, @extended) verhält sich die Funktion identisch zu StringRegExp.

    Vielleicht ja auch für euch nützlich.

  • Hallo BugFix !

    Reguläre Ausdrücke sind nicht gerade meine Stärke, aber kann es sein, dass deine Funktion die Werte für @error und @extended nicht korrekt zurückgibt bzw. diese Werte von einem anderen Funktionsaufruf zurückgesetzt werden ?

    Als Beispiel habe ich ein übles Pattern aus meinen frühen Tagen genommen :

    Statt (?i) habe ich den Fehler (?ä) eingebaut.

    Der Standard wirft folgendes in der Konsole aus : @error = 2 , @extended = 3

    Deine Funktion gibt 0 , 0 zurück - habe ich da etwas übersehen ?

    Gruß Musashi

    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."

  • Kommando zurück - habe mich selbst angeschissen :Face:

    Wenn man @error und @extended sichert, dann ist alles ok !

    C
    ; Mittels _RegexTest von @BugFix :
    ConsoleWrite('----------------- _RegexTest -------------------------' & @CRLF)
    $sString = _RegexTest($sFilename, $sPattern, 0)
    $iError    = @error
    $iExtended = @extended
    
    ConsoleWrite('_REGEX 0  : ' & $sString & @CRLF)
    ConsoleWrite('@error    = ' & $iError & @CRLF)
    ConsoleWrite('@extended = ' & $iExtended & @CRLF)

    EDIT :

    Alternativ kann man die Ausgabe in der selben ConsoleWrite-Anweisung unterbringen :

    Code
    ConsoleWrite('_REGEX    : ' & _RegexTest($sFilename, $sPattern) & @CRLF & '@error    = ' & @error & @CRLF & '@extended = ' & @extended & @CRLF )

    Gruß Musashi

    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 (28. November 2018 um 16:55)