2008-11-14 16 views

Répondre

0

Avec PCRE regex vous pouvez le faire:

/[a-zA-Z0-9]{6,50}/ 

Il serait très difficile de le faire dans regex sans min/max quantificateurs si nous espérons que votre langue les prend en charge.

+0

Ceci correspondra à 50 caractères dans un mot de 51 caractères ou plus, ce qui n'est pas ce que veut la personne qui pose la question. –

+0

Je supposais qu'il connaissait certains regex, je lui montrais juste comment utiliser les quantificateurs min/max. Les barres obliques sont juste là pour montrer que c'est une regex ... –

14
/[a-zA-Z0-9]{6,50}/ 

Vous pouvez utiliser des limites de mots au début/fin (\ b) si vous voulez faire correspondre réellement un mot dans le texte.

/\b[a-zA-Z0-9]{6,50}\b/ 
+0

Je veux faire correspondre le texte entier, pas un sous-ensemble de celui-ci. donc j'ai besoin de délimiter les limites, n'est-ce pas? –

+0

MVCNewbzter: Oui, c'est correct – HanClinto

+0

En fait, non, si vous voulez faire correspondre la chaîne entière plutôt que de simplement voir si elle contient une sous-chaîne correspondante, vous devez l'ancrer avec^et $ comme ceci:/^ [a -zA-Z0-9] {6,50} $ / –

8
\b\w{6,50}\b 

\w est tout 'mot' caractère - selon le goût de regex il pourrait être juste [a-z0-9_] ou il pourrait inclure d'autres (par exemple les caractères/etc accentués).

{6,50} signifie entre 6 et 50 (inclus)

\b moyens de limite de mot (assurant le mot ne dépasse pas les 50 à chaque extrémité). Après la relecture, il semble que ce que vous voulez faire est de vous assurer que tout le texte correspond à ce que vous voulez? Si oui ...

^\w{6,50}$