268 votes

Expression régulière pour autoriser les espaces entre les mots

Je veux une expression régulière qui empêche les symboles et n'autorise que les lettres et les chiffres. L'expression régulière ci-dessous fonctionne très bien, mais elle ne tient pas compte des espaces entre les mots.

^[a-zA-Z0-9_]*$

Par exemple, lorsque vous utilisez cette expression régulière, "HelloWorld" convient, mais "Hello World" ne correspond pas.

Comment puis-je le modifier pour autoriser les espaces ?

1voto

Masoud Darvishian Points 910

C'était mon expression : @"^(?=.{3,15}$)(?:(?:\p{L}|\p{N})[._()\[\]-]?)*$"

Je viens d'ajouter ([\w ]+) à la fin de ma regex avant *

@"^(?=.{3,15}$)(?:(?:\p{L}|\p{N})[._()\[\]-]?)([\w ]+)*$"

La chaîne de caractères peut maintenant contenir des espaces.

1voto

Zahra Badri Points 728

Cette regex ne permet que l'alphabet et les espaces :

^[a-zA-Z ]*$

-1voto

biddut Points 147

Essayez avec celui-ci :

result = re.search(r"\w+( )\w+", text)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X