
Digamos que tengo una expresión regular que utiliza algunos de los caracteres especiales, pero también una parte con texto "normal" que tiene algunos símbolos. Digamos también que soy demasiado vago para empezar a escapar de cada "posible" "carácter especial en la parte 'texto normal'.
¿Cómo puedo encerrar el bit de texto "normal" para que Regex no comience a dar un ataque cuando cree que se ha encontrado con un carácter especial (cuando en realidad no es así)?
Como ejemplo, digamos que busco el texto:
.*Hello it's true that ([6*.5]^2=9)
.
Ciertamente no quiero usar laboriosamente el carácter de escape cada vez que aparece alguno de los caracteres especiales en esa sección de matemáticas (o el apóstrofe en "no"). Por otro lado, SÍ quiero tratar la .*
parte del principio como caracteres especiales.
Entonces, ¿puedo adjuntar la Hello it's true that ([6*.5]^2=9)
sección para que Regex la trate como texto normal y no como especial?
Estoy usando Notepad++ para buscar y reemplazar, pero espero que cualquier respuesta sea la misma sin importar el programa.
Respuesta1
Algunas herramientas le permiten cambiar si los caracteres especiales deben tener caracteres de escape de forma predeterminada. Por ejemplo, vi
(y clones) tiene un magic
modo que controla esto. Eso puede permitirle reducir la cantidad de escape necesaria.
Respuesta2
Intente \Q
comenzar con un literal y terminar con \E
.
Esto funciona con muchas versiones de Regex, aunque Java puede tener problemas, por ejemplo.
Información obtenida de:http://www.regular-expressions.info/characters.html