Lookarounds sont à zéro, la largeur des assertions. La vérification pour un regex (vers la droite ou la gauche de la position actuelle à base de devant ou de derrière), réussit ou échoue lorsqu'une correspondance est trouvée (en fonction de si il est positif ou négatif) et les rejets correspondant à la partie. Ils ne consomment pas n'importe quel caractère - la correspondance pour la regex suivante (le cas échéant), commencera à la même position du curseur.
Lire regular-expression.info pour plus de détails.
Syntaxe:
(?=REGEX_1)REGEX_2
Match seulement si REGEX_1 matchs; après la mise en correspondance REGEX_1, le match est annulé 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 est - [a-z0-9]{4}$
ce qui correspond à quatre caractères alphanumériques suivi par la fin de la ligne.
REGEX_2 est - [a-z]{1,2}[0-9]{2,3}
qui correspond à un ou deux lettres suivies de deux ou trois chiffres.
REGEX_1 permet de s'assurer que la longueur de la chaîne est en effet 4, mais ne consomment pas tous les caractères, de sorte que la recherche de la REGEX_2 commence au même endroit. Maintenant REGEX_2 permet de s'assurer que la chaîne de caractères correspondant à certains autres règles. Sans look-ahead, il pourrait correspondre à des chaînes de longueur trois ou cinq.
Syntaxe:
(?!REGEX_1)REGEX_2
Match seulement si REGEX_1 ne correspondent pas; après vérification REGEX_1, la recherche de REGEX_2 commence à la même position.
exemple:
(?!.*\bFWORD\b)\w{10,30}$
Le " look-ahead partie vérifie l' FWORD
dans la chaîne et échoue si elle le trouve. Si il ne trouve pas d' FWORD
, le " look-ahead réussit et la partie suivante vérifie que la longueur de la chaîne est entre 10 et 30, et qu'il ne contient que des caractères de mot a-zA-Z0-9_
Regardez-derrière est similaire à "look-ahead": il semble juste derrière la position actuelle du curseur. Certains regex saveurs comme le javascript ne supporte pas de regarder derrière des affirmations. Et la plupart des saveurs qui le prennent en charge (PHP, Python, etc) exiger que cherchez-derrière portion d'avoir une longueur fixe.
- Groupes atomiques essentiellement les rejets oublie ultérieure des jetons dans le groupe une fois qu'un jeton de matchs. Consultez cette page pour des exemples de groupes atomiques