Je veux faire correspondre n'importe quelle chaîne qui pas contient la chaîne "DontMatchThis".
Quel est le regex?
essaye ça:
^(?!.*DontMatchThis).*$
L'expression régulière pour correspondre à une chaîne qui ne contient pas un certain modèle est
(?s)^(?!.*DontMatchThis).*$
Si vous utilisez le modèle sans le (?s)
(qui est une version en ligne du RegexOptions.Singleline
drapeau qui fait .
correspond à une nouvelle ligne LF ainsi que tous les autres caractères), le DontMatchThis
ne sera recherché que sur la première ligne, et uniquement une chaîne sans LF seront associés à .*
.
Détails du modèle :
(?s)
- un modificateur DOTALL/Singleline faisant .
correspond à n'importe quel caractère^
- début de l'ancre de chaîne(?!.*DontMatchThis)
- un lookahead négatif vérifiant s'il y a 0 ou plusieurs caractères (correspondant à _ .*
sous-modèle - [~ # ~] note [~ # ~] un paresseux .*?
la version (en faisant correspondre le moins de caractères possible avant la prochaine correspondance de sous-modèle) pourrait faire le travail plus rapidement si DontMatchThis
est attendu plus près du début de la chaîne) suivie de DontMatchThis
.*
- zéro ou plusieurs caractères, autant que possible, jusqu'à$
- la fin de la chaîne (voir Caractères d'ancrage: Dollar ($
)).