Regex Pattern unter .NET anders interpretiert?

  • Allgemein

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Regex Pattern unter .NET anders interpretiert?

    Hallo Community,

    ich habe folgende Regexpattern, mit denen ich nur Buchstaben, Umlaute, Zahlen und +-_&ß zulassen möchte:

    Quellcode

    1. ^[\w\+\-\&ßä-üÄ-Ü]+$


    Ich benutze zum schnellen Testen der Regex Pattern immer folgende (ich glaube) Java Applikation: gskinner.com/RegExr/.
    Mit dieser Applikation ist Lucaµ kein gültiger Name - wird also nicht gematcht.

    Wenn ich allerdings unter .NET das gleiche Pattern in Verbindung mit der Regex.IsMatch Funktion verwende so ist Lucaµ ein gültiger Name und die Funktion liefert true zurück.

    Ist mir ein Denkfehler unterlaufen, oder verhält sich C# in der interpretation von \w ein wenig anders?

    lg.

    LucaWelker
    lg.

    LucaWelker
    Ich habe keine Ahnung, warum .NET das anders interpretiert (ist mir bisher noch nie aufgefallen), aber verwende doch einfach:

    Quellcode

    1. ^[a-zA-Z\+\-\&ßä-üÄ-Ü]+$


    EDIT: btw. dein verlinkter RegExer basiert auf Flash.
    Hey,

    ja. Das wäre natürlich eine Alternative. Wobei in diesem Beispiel ja noch die Zahlen fehlen, was aber kein Problem darstellt diese einzufügen.

    Mir ging es allgemein aber eher einfach darum die Frage zu klären ob .NET die Pattern anders behandelt :) wie ich die Pattern verändern kann dass sie funktionieren weiß ich :)
    Aber trotzdem danke.

    Und wegen dem Regexr, danke für den Hinweiß.. HÄtte ich trottel einmal nen Rechtsklick gemacht wäre alles klar gewesen :D

    lg.
    lg.

    LucaWelker
    ich hab mir mal die Regex-Doku vonne MSDN auskopiert, darin steht zu \w:
    Entspricht einem beliebigen Wortzeichen. Entspricht den Unicode-Zeichenkategorien
    [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]. Wenn mit der ECMAScript-Option ECMAScript-konformes Verhalten angegeben wurde, ist \w gleichbedeutend mit [a-zA-Z_0-9].
    nu kenn ich leider weder die Unicode-Zeichenklassen noch das ECMAScript.

    ah - hier is die Doku: msdn.microsoft.com/de-de/library/az24scfc.aspx - hmm - iwie ist meine Doku detaillierter.
    Okay, danke für deine Hinweiß.
    Dann werde ich jetzt mal schnell schauen was das ECMAScript ist.

    Denn scheinbar verhält sich \w ja doch nicht wie a-zA-Z_0-9. Oder liegt das µ in diesem Bereich?
    lg.

    LucaWelker