Búsqueda de Visual Studio: encontrar una palabra, pero no cuando esté precedida por una palabra específica [duplicar]

Jan 12 2021

Por ejemplo, estoy tratando de encontrar todas las instancias de "perro", pero no el "perro" en "perro caliente" en un archivo de texto con la búsqueda de texto de Visual Studio. Encontré una pregunta similar y probé su respuesta aceptada.

\w+(?<!hot) dog

Excluye "hot dog", pero el problema es que coincide con todas las combinaciones posibles para otros casos. Es decir, para "perro de caza", tengo que hacer clic en "Buscar siguiente" 7 veces para pasar a la siguiente instancia, porque VS se detiene en todas las siguientes partes de esa instancia.

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

Además, no coincide con la palabra, si no está precedida por nada (la primera palabra). ¿Cómo puedo cambiar la expresión?

Respuestas

Jossnix Jan 12 2021 at 14:43

La pregunta no está del todo clara. Si desea encontrar la palabra "perro", en la búsqueda solo debe especificarla. Si desea encontrar la palabra anterior + perro, utilice

\b\w+\s+dog

Para excluir la palabra "caliente"

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

Prueba el patrón (?!<hot )dog

Explicación del patrón:

(?!<hot ) - mirar atrás negativo - afirmar lo que precede no es hot

dog- coincidir dogliteralmente

Manifestación