Pesquisa do Visual Studio: encontrar uma palavra, mas não quando precedida por uma palavra específica [duplicado]
Por exemplo, estou tentando localizar todas as ocorrências de "cachorro", mas não o "cachorro" em "cachorro-quente" em um arquivo de texto com a pesquisa de texto do Visual Studio. Encontrei uma pergunta semelhante e tentei a resposta aceita.
\w+(?<!hot) dog
Exclui "cachorro-quente", mas o problema é que ele corresponde a todas as combinações possíveis para outros casos. Ou seja, para "cão de caça", tenho que clicar em "Encontrar próximo" 7 vezes para passar para a próxima instância, porque o VS para para todas as partes seguintes dessa instância.
hunting dog
unting dog
nting dog
ting dog
ing dog
ng dog
g dog
Além disso, não corresponde à palavra, se não for precedida por nada (a primeira palavra). Como posso mudar a expressão?
Respostas
A questão não está totalmente clara. Se você quiser encontrar a palavra "cachorro", na busca você precisa especificá-la apenas. Se você quiser encontrar a palavra anterior + cachorro, use
\b\w+\s+dog
Para excluir a palavra "quente"
(?<!hot )\bdog
Teste padrão (?!<hot )dog
Explicação do padrão:
(?!<hot )
- olhar para trás negativo - afirmar o que precede não hot
dog
- corresponde dog
literalmente
Demo