Expression régulière - commençant et se terminant par une lettre, n'acceptant que des lettres, des chiffres et _
Je suis en train d'écrire une expression régulière qui indique que le texte doit commencer par une lettre, chaque caractère doit être une lettre, un chiffre ou un caractère de soulignement, il ne devrait pas être 2 underscores dans une rangée et doivent se terminer par une lettre ou un chiffre. Pour le moment, la seule chose que j'ai est ^[a-zA-Z]\w[a-zA-Z1-9_]
mais cela ne semble pas fonctionner correctement, car elle ne correspond jamais à 3 caractères, et permet de répéter plusieurs fois des traits de soulignement. Aussi, je ne sais pas comment spécifier les exigences pour le dernier caractère.
source d'informationauteur jreid9001 | 2010-05-12
Vous devez vous connecter pour publier un commentaire.
Je vais prendre un coup de couteau à elle:
Expliqué:
La non-capture groupe prend soin de ne pas s'permettant à deux
_
s '(il force au moins une lettre ou un numéro par groupe) et b) d'autoriser uniquement le dernier char à être une lettre ou un chiffre.Certaines chaînes de test:
Voici une solution à l'aide d'une anticipation négatif (non pris en charge dans tous les regex moteurs):
Tester qu'il fonctionne comme prévu:
de voir comment les règles sont assez compliquées, je vous suggère le texte suivant:
match de l'ensemble de la chaîne et de recueillir les personnages. Ensuite, soit avec les fonctions de chaîne ou de la regex suivante:
vérifier si la capture d'une partie a deux caractères de soulignement dans une rangée. Par exemple en Python, il devrait ressembler à ceci: