100 votes

Regex pour faire correspondre les mots d'une certaine longueur

J'aimerais connaître l'expression régulière pour faire correspondre les mots de telle sorte que les mots aient une longueur maximale. par exemple, si un mot a une longueur maximale de 10 caractères, je voudrais que l'expression régulière corresponde, mais si la longueur dépasse 10, l'expression régulière ne devrait pas correspondre.

J'ai essayé

 ^(\w{10})$

mais cela m'apporte des correspondances uniquement si la longueur minimale du mot est de 10 caractères. Si le mot contient plus de 10 caractères, il correspond toujours, mais ne correspond qu'aux 10 premiers caractères.

106voto

Tikhon Jelvis Points 30789

Je pense que vous voulez \b\w{1,10}\b . Le \b correspond à une limite de mot.

Bien sûr, vous pouvez également remplacer le \b et faire ^\w{1,10}$ . Cela correspondra à un mot d'au plus 10 caractères tant que c'est le seul contenu de la chaîne. Je pense que c'est ce que tu faisais avant.

Comme il s'agit de Java, vous devrez en fait échapper aux barres obliques inverses : "\\b\\w{1,10}\\b" . Vous le saviez probablement déjà, mais ça m'est déjà arrivé.

62voto

Tim Pietzcker Points 146308
^\w{0,10}$ # allows words of up to 10 characters.
^\w{5,}$   # allows words of more than 4 characters.
^\w{5,10}$ # allows words of between 5 and 10 characters.

30voto

Kleenestar Points 699

Longueur des caractères à faire correspondre.

 {n,m}  n <= length <= m
{n}    length == n
{n,}   length >= n

Et par défaut, le moteur est gourmand pour correspondre à ce modèle. Par exemple, si l'entrée est 123456789, \d{2,5} correspondra à 12345 qui est de longueur 5.

Si vous voulez que le moteur retourne lorsque la longueur de 2 correspond, utilisez \d{2,5} ?

3voto

Pardeep Dogra Points 159

Même, je cherchais la même expression régulière, mais je voulais également inclure tous les caractères spéciaux et les espaces vides. Voici donc la regex pour cela :

 ^[A-Za-z0-9\s$&+,:;=?@#|'<>.^*()%!-]{0,10}$

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