Visual Studio-Suche: Suchen eines Wortes, jedoch nicht, wenn ein bestimmtes Wort vorangestellt ist [Duplikat]

Jan 12 2021

Zum Beispiel versuche ich, alle Instanzen von "Hund", aber nicht den "Hund" in "Hot Dog" in einer Textdatei mit der Textsuche von Visual Studio zu finden. Ich fand eine ähnliche Frage und versuchte ihre akzeptierte Antwort.

\w+(?<!hot) dog

Es schließt "Hot Dog" aus, aber das Problem ist, dass es für alle möglichen Kombinationen für andere Fälle übereinstimmt. Das heißt, für "Jagdhund" muss ich siebenmal auf "Nächste suchen" klicken, um zur nächsten Instanz zu gelangen, da VS für alle folgenden Teile dieser einen Instanz stoppt.

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

Außerdem stimmt es nicht mit dem Wort überein, wenn ihm nichts vorangestellt ist (das erste Wort). Wie kann ich den Ausdruck ändern?

Antworten

Jossnix Jan 12 2021 at 14:43

Die Frage ist nicht ganz klar. Wenn Sie das Wort "Hund" finden möchten, müssen Sie bei der Suche nur das Wort angeben. Wenn Sie das vorherige Wort + Hund finden möchten, verwenden Sie

\b\w+\s+dog

Um das Wort "heiß" auszuschließen

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

Versuchen Sie Muster (?!<hot )dog

Mustererklärung:

(?!<hot ) - negatives Aussehen - behaupten, was vorhergeht, ist nicht hot

dog- dogbuchstäblich übereinstimmen

Demo