Recherche Visual Studio: trouver un mot, mais pas lorsqu'il est précédé d'un mot spécifique [dupliquer]
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
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
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 dog
littéralement
Démo