.NET RegEx pour les lettres et les espaces

J’essaie de créer une expression régulière en C # qui n’autorise que les caractères alphanumériques et les espaces. Actuellement, j’essaye ce qui suit:

ssortingng pattern = @"^\w+$"; Regex regex = new Regex(pattern); if (regex.IsMatch(value) == false) { // Display error } 

Qu’est-ce que je fais mal?

Si vous avez juste besoin d’anglais, essayez cette regex:

 "^[0-9A-Za-z ]+$" 

Les crochets spécifient un ensemble de caractères

0-9 : Tous les chiffres

AZ : toutes les lettres majuscules

az : toutes les lettres minuscules

' ' : Espaces

Si vous avez besoin d’unicode / internationalisation, vous pouvez essayer cette regex:

 "^[\\w ]+$" 

Cette expression rationnelle correspond à toutes les lettres, tous les chiffres et tous les espaces unicode, ce qui peut être plus que nécessaire. Ainsi, si vous n’avez besoin que de caractères anglais ou romains de base, la première expression rationnelle sera plus simple et plus rapide à exécuter.

Notez que pour les deux regex j’ai inclus les opérateurs ^ et $ , qui correspondent au début et à la fin. Si vous devez extraire ceci d’une chaîne et qu’il ne doit pas nécessairement s’agir de la chaîne entière, vous pouvez supprimer ces deux opérateurs.

essayez ceci pour toutes les lettres avec espace:

 @"[\p{L} ]+$" 

La classe de caractères \w ne correspond pas aux espaces. Essayez de le remplacer par [\w ] (il y a un espace après le \w pour faire correspondre les caractères de mot et les espaces. Vous pouvez également remplacer cet espace par \s si vous souhaitez faire correspondre n’importe quel espace.

Si, à part 0-9, az et AZ, vous devez également couvrir les lettres accentuées telles que ï, é, æ, Ó ou Ş, il vaut mieux utiliser les propriétés Unicode \p{...} pour la correspondance, c’est-à-dire ( notez l’espace):

 ssortingng pattern = @"^[\p{IsLetter}\p{IsDigit} ]+$"; 

Cette regex fonctionne très bien pour moi.

  Regex rgx = new Regex("[^a-zA-Z0-9_ ]+"); if (rgx.IsMatch(yourssortingng)) { var err = "Special charactes are not allowed in Tags"; }