2010-05-29 6 views
4

Comment puis-je écrire une expression régulière (C#) qui va vérifier une chaîne donnée pour voir si l'un de ses caractères sont des caractères autres que les éléments suivants:expression régulière .NET

az
AZ
Æ Æ Å Ø ø - '

+0

Contrairement à JavaScript, C# n'a pas d'expressions régulières dans le langage. Vous posez des questions sur les expressions régulières .NET, pas sur les expressions régulières C#. –

Répondre

12
new Regex("[^a-zA-ZÆæÅåØø'-]") 

Le [] crée une classe de caractères, puis ^ spécifie la négation, donc un match de caractère Es la classe si ce n'est pas l'un de ceux énumérés.

+0

Le '' 'devrait être exclu aussi. – kennytm

+0

Merci, @Kenny. –

+0

Notez que le caractère - est le dernier de la liste. Si vous voulez exclure plus de caractères, ne les ajoutez pas après le -, mettez-les avant (ou échappez le - avec barre oblique inverse), sinon les caractères à gauche et à droite de - seront traités comme une plage de caractères. –

1

Vous pouvez utiliser le groupement de caractères en combinaison avec l'opérateur de négation pour y parvenir.

Vous devez également échapper le caractère - (et potentiellement le ') en utilisant un \

Votre expression finale lirait:

[^ a-zA-ZÆæÅåØø \ - \'] *