web-dev-qa-db-fra.com

regex vérifier l'espace blanc au milieu de la chaîne

Je veux valider que les caractères sont alphanumériques:

Regex aNum = Regex("[a-z][A-Z][0-9]");

Je veux ajouter l'option qu'il pourrait y avoir un espace blanc, donc ce serait une expression à deux mots:

Regex aNum = Regex("[a-z][A-Z][0-9]["\\s]");

mais n'a pas pu trouver la syntaxe correcte.

id appliquer toute incitation.

14
eran otzap

[A-Za-z0-9\s]{1,} devrait fonctionner pour vous. Il correspond à n'importe quelle chaîne qui contient des caractères alphanumériques ou des espaces et a au moins un caractère. Si vous acceptez les traits de soulignement, vous les raccourcissez également en [\w\s]{1,}.

Vous devez ajouter ^ et $ pour vérifier les correspondances de chaîne entières et pas seulement une partie de la chaîne:

^[A-Za-z0-9\s]{1,}$ ou ^[\w\s]{1,}$.

22
Zebi
"[A-Za-z0-9\s]*"

correspond aux caractères alphanumériques et aux espaces. Si vous voulez un mot qui peut contenir des espaces mais voulez vous assurer qu'il commence et se termine par un caractère alphanumérique, vous pouvez essayer

"[A-Za-z0-9][A-Za-z0-9\s]*[A-Za-z0-9]|[A-Za-z0-9]"
5
sverre

Exactement deux mots avec un seul espace:

Regex aNum = Regex("[a-zA-Z0-9]+[\s][a-zA-Z0-9]+");

OU n'importe quel nombre de mots ayant un nombre quelconque d'espaces:

Regex aNum = Regex("[a-zA-Z0-9\s]");
4
Waqas Raja

Pour ne pas autoriser les chaînes vides alors

Regex.IsMatch(s ?? "",@"^[\w\s]+$"); 

et pour autoriser les chaînes vides

Regex.IsMatch(s ?? "",@"^[\w\s]*$"); 

J'ai ajouté le ?? "" car IsMatch n'accepte pas les arguments nuls

3
James Kyburz

Si vous souhaitez vérifier l'espace blanc au milieu de la chaîne, vous pouvez utiliser ces modèles:

  1. "(\w\s)+": cela doit correspondre au moins à un mot avec un espace blanc.
  2. "(\w\s)+$": cela doit correspondre au moins à un mot avec un espace blanc et doit se terminer par un espace blanc.
  3. "[\w\s]+": cette correspondance pour Word ou un espace blanc ou les deux.
1
Farouk Belhocine