web-dev-qa-db-fra.com

Définition d'un nombre minimal / maximal de caractères pour tout caractère utilisant une expression régulière

J'essaie d'écrire une expression régulière qui sera utilisée dans une zone de texte pour valider son contenu et déterminer s'il se situe entre 1 et 35. Les caractères de la zone de texte peuvent être n'importe quoi: numérique, alpha, ponctuation, espace, etc. Voici ce que j'ai jusqu'à présent:

^[:;,\-@0-9a-zA-Zâéè'.\s]{1,35}$

Comme vous pouvez le constater, je dois lister tous les personnages. Existe-t-il un moyen plus simple de dire "tous" les personnages?

41
ben miles

Comme ça: .

Le . signifie tout caractère sauf newline (qui est parfois mais n'est souvent pas inclus, vérifiez votre saveur de regex).

Vous pouvez réécrire votre expression en tant que ^.{1,35}$, qui doit correspondre à n’importe quelle ligne de longueur 1-35.

45
mkjeldsen

C'est généralement le métacaractère . quand il ne fait pas partie d'une classe de caractères.

Alors utilisez ^.{1,35}$. Cependant, point n'inclut pas les retours à la ligne, sauf si le modificateur point-tout lui est appliqué.

Vous pouvez utiliser ^[\S\s]{1,35}$ sans aucun modificateur, ce qui inclut également les nouvelles lignes.

16
sln

Oui, . (point) correspond à n'importe quel caractère. Utilisation:

^.{1,35}$
11
KurzedMetal

Si vous souhaitez définir un compte Min 1 et aucune longueur Max,

^.{1,}$
10
Kapilrc

Si vous souhaitez également faire correspondre les nouvelles lignes, vous pouvez utiliser "^[\s\S]{1,35}$" (selon le moteur de regex). Sinon, comme d’autres l’ont dit, vous devriez utiliser "^.{1,35}$"

4
Edward Loper