Question

Est-il possible de faire la négation de la chaîne dans les expressions régulières? Je dois correspondre à toutes les chaînes qui ne contiennent pas la chaîne "..". Je sais que vous pouvez utiliser ^[^\.]*$ pour correspondre à toutes les chaînes qui ne contiennent pas "." mais je dois correspondre à plus d'un caractère. Je sais que je pourrais simplement correspondre à une chaîne contenant ".." puis nier la valeur de retour du match pour obtenir le même résultat, mais je me demandais s'il était possible.

Était-ce utile?

La solution

Vous pouvez utiliser lookaheads négatif:

^(?!.*\.\.).*$

Cela provoque l'expression correspondant pas si elle peut trouver une séquence de deux périodes ne importe où dans la chaîne.

Autres conseils

^(?:(?!\.\.).)*$

ne correspondra s'il n'y a pas deux points consécutifs partout dans la chaîne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top