/ / en n'utilisant que des éléments de recherche négatifs dans une expression rationnelle - regex, regex-negation, regex-lookarounds

n'utiliser que des repères négatifs dans une expression régulière - expression rationnelle, expression rationnelle, négation des expressions rationnelles

Je veux vérifier la phrase avec regex qui ne contient que des informations négatives. Donc si écris

   ^(?!My Words)$

et la chaîne de test est some characters. Je m'attends à ce que la regex retourne true, mais ce n'est pas le cas. Devrait-il y avoir un personnage consommant Match Character pour effectuer le résultat?

Réponses:

2 pour la réponse № 1

La regex que vous avez fournie signifie:

  • Le début de la ficelle
  • Les caractères suivants ne sont pas "Mes mots"
  • La fin de la ficelle

Il n'y a pas de contrôle dans la regex qui indique que la chaîne doit en réalité contenir quoi que ce soit. Plus spécifiquement, il doit ne rien contenir. Dans ce cas, la prévision ne fait rien.

Vous voulez probablement quelque chose de plus semblable à ceci:

^(?!My Words).*$

le .* est juste zéro ou plusieurs wild-cards, donc fondamentalement tout. Dans ce cas, l’anticipation empêche la chaîne de commençant par "Mes mots".

Si vous voulez empêcher "Mes mots" d'apparaître nulle part, quelque chose comme ça devrait marcher:

^(?!.*My Words).*$