Recherche Visual Studio: trouver un mot, mais pas lorsqu'il est précédé d'un mot spécifique [dupliquer]

Jan 12 2021

Par exemple, j'essaie de trouver toutes les instances de "chien", mais pas le "chien" dans "hot dog" dans un fichier texte avec la recherche de texte de Visual Studio. J'ai trouvé une question similaire et essayé sa réponse acceptée.

\w+(?<!hot) dog

Il exclut "hot dog", mais le problème est qu'il correspond à toutes les combinaisons possibles pour les autres cas. Autrement dit, pour "chien de chasse", je dois cliquer 7 fois sur "Rechercher suivant" pour passer à l'instance suivante, car VS s'arrête pour toutes les parties suivantes de cette instance.

hunting dog
unting dog
nting dog
ting dog
ing dog
ng dog
g dog

De plus, il ne correspond pas au mot, s'il n'est précédé de rien (le premier mot). Comment puis-je changer l'expression?

Réponses

Jossnix Jan 12 2021 at 14:43

La question n'est pas tout à fait claire. Si vous voulez trouver le mot "chien", vous devez le spécifier uniquement dans la recherche. Si vous voulez trouver le mot précédent + chien, utilisez

\b\w+\s+dog

Pour exclure le mot "chaud"

(?<!hot )\bdog
MichałTurczyn Jan 12 2021 at 14:54

Essayez le modèle (?!<hot )dog

Explication du motif:

(?!<hot ) - regard négatif en arrière - affirmer que ce qui précède n'est pas hot

dog- correspond doglittéralement

Démo