mehrere Regex-Ausdrücke testen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    mehrere Regex-Ausdrücke testen

    Moin!

    wenn ich einen Wert mit regex prüfe, dann sieht das so aus:

    VB.NET-Quellcode

    1. If String.IsNullOrEmpty(Value) = True Then Return False
    2. Dim rx As New Regex("^[0-9]{4}\/[0-9]{2}$")
    3. Dim tr As Match
    4. tr = rx.Match(Value)
    5. Return tr.Success


    Nun habe ich mehrere Ausdrücke und des ist ausreichend, wenn einer erfüllt ist.

    Kann man das einfach und wenn wie machen?

    Gruß Jan
    @jan99 Soll das eine 2- oder 4-stellige Jahreszahl oder so werden?
    Falls ja, probier mal "\d{4}|(\d\d(\D|$))"
    - \d{4} - 4-stellige Zahl
    - | oder
    - (\d\d(\D|$)) - zweistellige Zahl gefolgt von Nicht-Zahl oder Sequenzende.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wenn der Regex-Ausdruck funktioniert und es nur um Überprüfung mehrerer Werte geht, dann wahrscheinlich mittels Schleife

    VB.NET-Quellcode

    1. Dim rx As New Regex("^[0-9]{4}\/[0-9]{2}$")
    2. For Each Value In Values
    3. If String.IsNullOrEmpty(Value) Then Return False
    4. Dim tr = rx.Match(Value)
    5. If tr.Success Then Return True
    6. Loop
    7. Return False

    ggf. kürzbar auf

    VB.NET-Quellcode

    1. If Values.Any(Function(x) String.IsNullOrEmpty(x)) Then Return False
    2. Dim rx As New Regex("^[0-9]{4}\/[0-9]{2}$")
    3. Return Values.Any(Function(x) rx.Match(x).Success)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.