Búsqueda de Visual Studio: encontrar una palabra, pero no cuando esté precedida por una palabra específica [duplicar]
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
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
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 dog
literalmente
Manifestación