Les contournements sont des assertions de largeur nulle. Ils recherchent une expression régulière (vers la droite ou la gauche de la position actuelle - en fonction de l'avant ou de l'arrière), réussissent ou échouent lorsqu'une correspondance est trouvée (selon qu'elle est positive ou négative) et rejette la partie correspondante. Ils ne consomment aucun caractère - la correspondance pour l'expression régulière qui les suit (le cas échéant), commencera à la même position du curseur.
Lisez regular-expression.info pour plus de détails.
Syntaxe:
(?=REGEX_1)REGEX_2
Correspondance uniquement si REGEX_1 correspond; après avoir correspond à REGEX_1, la correspondance est annulée et la recherche de REGEX_2 commence à la même position.
exemple:
(?=[a-z0-9]{4}$)[a-z]{1,2}[0-9]{2,3}
REGEX_1 [a-z0-9]{4}$
correspond à quatre caractères alphanumériques suivis de la fin de la ligne.
REGEX_2 [a-z]{1,2}[0-9]{2,3}
correspond à une ou deux lettres suivies de deux ou trois chiffres.
REGEX_1 s'assure que la longueur de la chaîne est bien 4, mais ne consomme aucun caractère afin que la recherche de REGEX_2 commence au même emplacement. Maintenant, REGEX_2 s'assure que la chaîne correspond à d'autres règles. Sans anticipation, il correspondrait à des chaînes de longueur trois ou cinq.
Syntaxe:
(?!REGEX_1)REGEX_2
Correspondance uniquement si REGEX_1 ne correspond pas; après avoir vérifié REGEX_1, la recherche de REGEX_2 commence à la même position.
exemple:
(?!.*\bFWORD\b)\w{10,30}$
La partie d'anticipation vérifie la FWORD
dans la chaîne et échoue si elle la trouve. S'il ne le trouve pas FWORD
, l'anticipation réussit et la partie suivante vérifie que la longueur de la chaîne est comprise entre 10 et 30 et qu'elle ne contient que des caractères de mota-zA-Z0-9_
L'arrière-plan est similaire à l'anticipation: il regarde juste derrière la position actuelle du curseur. Certaines saveurs d'expression régulière comme javascript ne prennent pas en charge les assertions de recherche. Et la plupart des saveurs qui le prennent en charge (PHP, Python, etc.) nécessitent que cette partie en regard ait une longueur fixe.
- Les groupes atomiques rejettent / oublient essentiellement les jetons suivants dans le groupe une fois qu'un jeton correspond. Consultez cette page pour des exemples de groupes atomiques