Les constructions spéciales fournissent des moyens de mise en correspondance conditionnelle (lookahead et lookbehind ou plus généralement zero-width assertions).
Littéralement, grâce aux constructions lookahead et lookbehind, il est possible de vérifier devant et derrière un critère qui permettra de trouver une occurrence qui correspond à une expression régulière.
#Recherche après le caractère : Expression régulière : (?<=:)([\w\-\.]+@\w+\.[a-z]{2,4}|.+) Cible : From: expediteur@email.com To: destinataire@email.com Subject: Bonjour... #Recherche incluant le caractère : Expression régulière : (?=:)([\w\-\.]+@\w+\.[a-z]{2,4}|.+) Cible : From: expediteur@email.com To: destinataire@email.com Subject: Bonjour... #Recherche d'une occurrence dont le début n'est pas un caractère : Expression régulière : (?!:)([\w\-\.]+@\w+\.[a-z]{2,4}|.+) Cible : From: expediteur@email.com To: destinataire@email.com Subject: Bonjour... #Recherche devant le caractère : en l'excluant Expression régulière : ^.+(?=:) Cible : From: expediteur@email.com To: destinataire@email.com Subject: Bonjour... #Recherche devant le caractère : en l'incluant Expression régulière : ^.+(?<=:) Cible : From: expediteur@email.com To: destinataire@email.com Subject: Bonjour... #Recherche devant le caractère : en l'incluant Expression régulière : ^.+(?>:) Cible : From: expediteur@email.com To: destinataire@email.com Subject: Bonjour... #Recherche d'une occurrence dont le début n'est pas un caractère : Expression régulière : (?<!:)([\w\-\.]+@\w+\.[a-z]{2,4}|.+) Cible : From: expediteur@email.com To: destinataire@email.com Subject: Bonjour... #Recherche d'une occurrence dont la fin n'est pas 'S' ou 'ES'
et peut être E mais en l'excluant : Expression régulière : SAINT(?=E?)(?!E?S) Cible : SAINT SAINTE SAINTS SAINTES #Recherche d'une occurrence dont la fin peut être E mais en
l'excluant. En son sein, il ne peut y avoir 'A' ou 'RA' et il peut inclure
un 'D' s'il existe : Expression régulière : \bGR?(?!R?A)N?(?>D?)(?=E?) Cible : GRD GD GND GDE GRNDE GRAND GRANDE AGDE
Symboles | Description |
---|---|
(?options) | Expression ne devant pas être prise pour un groupe de capture exprimant des options d'expression régulière. Les options peuvvent être accolées ensemble (ex.: (?is)) ou des groupes d'options peuvent se succéder (ex.: (?i)(?s)). |
(?:regexp) | Expression ne devant pas être prise pour un groupe de capture. |
(?idmsux-idmsux) | Activation ou désactivation des options de recherche. |
(?idmsux-idmsux:regexp) | Activation ou désactivation des options pour l'expression ne devant pas être prise pour un groupe de capture. |
(?=regexp)X | Recherche d'une occurrence correspondant à l'expression X, qui doit suivre une occurrence correspondant à la construction spéciale. Cette dernière occurrence est incluse dans la première (zero-width positive lookahead). |
X(?=regexp) | Recherche d'une occurrence correspondant à l'expression X, qui doit précéder une occurrence correspondant à la construction spéciale. Cette dernière occurrence n'est pas incluse dans la première (zero-width positive lookahead). |
(?!regexp)X | Recherche d'une occurrence correspondant à l'expression X, qui ne doit pas suivre une occurrence correspondant à la construction spéciale (zero-width negative lookahead). |
X(?!regexp) | Recherche d'une occurrence correspondant à l'expression X, qui ne doit pas précéder une occurrence correspondant à la construction spéciale (zero-width negative lookahead). |
(?<=regexp)X | Recherche d'une occurrence correspondant à l'expression X, qui doit suivre une occurrence correspondant à la construction spéciale. Cette dernière occurrence n'est pas incluse dans la première (zero-width positive lookbehind). |
X(?<=regexp) | Recherche d'une occurrence correspondant à l'expression X, qui doit précéder une occurrence correspondant à la construction spéciale. Cette dernière occurrence est incluse dans la première (zero-width positive lookbehind). |
(?<!regexp)X | Recherche d'une occurrence correspondant à l'expression X, qui ne doit pas suivre une occurrence correspondant à la construction spéciale (zero-width negative lookbehind). |
X(?<!regexp) | Recherche d'une occurrence correspondant à l'expression X, qui ne doit pas suivre une occurrence correspondant à la construction spéciale (zero-width negative lookbehind). |
X(?>regexp) | Recherche d'une occurrence correspondant à l'expression X, qui doit précéder une occurrence correspondant à la construction spéciale. Cette dernière occurrence est incluse dans la première. |
(?>regexp)X | Recherche d'une occurrence correspondant à l'expression X, qui doit suivre une occurrence correspondant à la construction spéciale. Cette dernière occurrence est incluse dans la première. |