J'essaie d'écrire une expression régulière qui n'autorisera que des lettres minuscules et jusqu'à 10 caractères. Ce que j'ai jusqu'à présent ressemble à ceci:
pattern: /^[a-z]{0,10}+$/
Cela ne fonctionne pas ou ne compile pas. J'en avais un qui fonctionnait qui autoriserait simplement les lettres minuscules, ce qui était le suivant:
pattern: /^[a-z]+$/
Mais je dois limiter le nombre de caractères à 10.
^[a-z]{0,10}+$
compilent sur certains langages et que certains des plus notables sont Java, Perl (5.10+), PHP, Ruby (1.9+). Voir cette page pour plus de détails.Réponses:
Vous pouvez utiliser des accolades pour contrôler le nombre d'occurrences. Par exemple, cela signifie de 0 à 10:
Les options sont:
Voir la référence des expressions régulières .
Votre expression avait un + après l'accolade fermante, d'où l'erreur.
la source
^
pour que la propriété corresponde UNIQUEMENT aux requêtes avec un nom comme1234
ou5678
, et j'ai dû inclure le signe $/^[a-z]{0,10}$/
devrait marcher./^[a-z]{1,10}$/
si vous voulez faire correspondre au moins un caractère, comme le/^[a-z]+$/
fait.la source
Il peut être avantageux d'ajouter une correspondance gourmande à la fin de la chaîne, afin que vous puissiez accepter les chaînes> 10 et l'expression régulière ne renverra que les 10 premiers caractères.
/^[a-z0-9]{0,10}$?/
la source
Cela dépend beaucoup du programme que vous utilisez. Différents programmes ( Emacs , vi , sed et Perl ) utilisent des expressions régulières légèrement différentes. Dans ce cas, je dirais que dans le premier modèle, le dernier "+" devrait être supprimé.
la source
Donne les nombres avec le nombre de correspondances exactes avec limite
la source