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
SymbolesDescription
(?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)XRecherche 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)XRecherche 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)XRecherche 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)XRecherche 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)XRecherche 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.