11
votes

Expression régulière .NET qui vérifie la longueur et les caractères non alphanumériques

J'ai besoin de regexp pour valider la chaîne a une longueur minimale 6 et il contient au moins un caractère non alphanumérique, par exemple: "EN% {S $ u)" "H9YI!>" H9YI!> 4J ", " {9i!; 4j ", " fr% {s $ USDF) ", " DFH9YI!> 4J ", "ghffg {9i!; 4J" .

Celui-ci fonctionne bien ^. * (? =. {6,}) (? =. * \\ d). * $ " mais dans les cas où la chaîne ne contient aucun chiffre (par exemple, "en% {s $ u)" ) il ne fonctionne pas.


0 commentaires

4 Réponses :


1
votes

Gardez-le facile

(?=.{6}).{0,5}[^\da-zA-Z]


4 commentaires

Je garde des refusions dans le fichier de configuration, je ne peux pas le faire.


@LUCERO Vérifiez à nouveau. Cette entrée n'a pas échoué. Il passe l'expression régulière, comme indiqué dans les exigences - "La chaîne a une longueur minimale 6 et contient au moins un caractère non alphanumérique". Dans ce cas, le "-" satisfait à la 2e exigence et, bien, la longueur la première. Beau retournement dans votre réponse, BTW.


@LUCERO Je suis à l'écart sans les ancres à cause de la seconde "." Limite de correspondance.


Désolé, tu as raison bien sûr. Je manquai d'une manière ou d'une autre l'ancre omise, mon mal. +1 pour ça. ;-)



0
votes

Quoi de cela (fixe): ^ (? =. {6}) (. * [^ \ w]. *) $

Vérifiez ceci sur http://www.ultrapico.com/expresso.htm c'est Outil cool qui pourrait vous aider beaucoup dans Regexps Apprendre.


2 commentaires

Il semble que l'expression était brisée d'une manière ou d'une autre (je m'attendais à voir un . * et \ w dans leurs endroits respectifs pour l'expression pour donner un sens).


Vous avez laissé tomber une barre oblique inverse dans l'une de vos modifications. [^ w] doit être soit [^ \ w] ou \ w .



11
votes
^.*(?=.{6,})(?=.*\\d).*$"

0 commentaires

3
votes

La réponse de Marcog est plutôt bonne, mais je le ferais dans l'inverse de pour qu'il soit plus facile d'ajouter encore plus de conditions (comme ayant au moins un chiffre ou autre), et j'utiliserais des quantificats paresseux parce qu'ils sont moins cher pour certains modèles: xxx

Donc, si vous devez ajouter la condition supplémentaire mentionnée, ce serait comme suit: xxx

comme vous peut voir, ce modèle est facilement extensible. Notez que c'est conçu pour être utilisé uniquement pour vérifier les correspondances, sa capture n'est pas utile.


0 commentaires