Quelle est l'expression régulière pour trouver des chaînes ne contenant pas un mot spécifique ?
Il est possible de créer une expression régulière inverse, c'est-à-dire de capturer le texte qui ne correspond pas à un motif particulier.
Le principe des expressions régulières est de capturer des chaînes correspondant à un motif précis. Il est également possible de créer une expression régulière inverse, c'est-à-dire de capturer le texte qui ne correspond pas à un motif particulier. Par exemple pour trouver les chaînes ne contenant pas la chaîne de caractère mot, on utilisera l'expression régulière ^((?!mot).)*$. Les caractères ^ et $ signalent le début et la fin de la chaîne.
Dans la petite parenthèse, le point d'interrogation signifie que l'expression encadrée par les parenthèses ne sera pas récupérée pour être utilisée plus tard, ce qui est normalement le cas quand il y a des parenthèses. Le point d'exclamation exprime la négation : le ou les caractères situés après ne devront pas être présents. C'est pour cela que la chaîne de caractères se trouve juste après. Le point situé dans la grande parenthèse indique que l'on cherche n'importe quel caractère.
En combinant le point et la grande parenthèse, on pourra capturer la chaîne de caractères ne contenant pas la chaîne de caractères mot. L'étoile indique quant à elle que l'on cherche ce motif une ou plusieurs fois. Il faut noter que le point ne capture pas les sauts de ligne. Si on veut ignorer les sauts de lignes alors il faut utiliser le modificateur s qui permet d'enlever tous les sauts de ligne. L'expression régulière s'écrira alors /^((?!mot).)*$/s.