Tratar parte de uma expressão Regex como caracteres não especiais

3

Digamos que eu tenha uma expressão regex utilizando alguns dos caracteres especiais, mas também uma parte com texto 'normal' que por acaso tenha alguns símbolos. Vamos também dizer que estou com preguiça de começar a escapar de todos os " pretenso "caractere especial na parte do 'texto normal'.

Como posso colocar o bit de texto 'normal' para que o Regex não comece a ter um ajuste quando achar que ele está em um caractere especial (quando na verdade não foi)?

Como exemplo, digamos que eu pesquise pelo texto:

.*Hello it's true that ([6*.5]^2=9) .

Eu certamente não quero usar laboriosamente o caractere de escape toda vez que qualquer um dos caracteres especiais aparecer na seção de matemática (ou o apóstrofo em "não"). Por outro lado, eu quero tratar o .* bit no início como caracteres especiais.

Então eu posso colocar a seção Hello it's true that ([6*.5]^2=9) de forma que o Regex a trate como texto normal e não especial?

Estou usando o Notepad ++ para encontrar e substituir, mas espero que qualquer resposta seja a mesma, não importa qual seja o programa.

    
por Dan W 23.05.2015 / 23:14

2 respostas

1

Teste \Q para iniciar um literal e termine com \E .

Isso funciona com muitos tipos de Regex, embora Java possa ter problemas, por exemplo.

Informações obtidas de: link

    
por 25.05.2015 / 14:37
1

Algumas ferramentas permitem que você altere se caracteres especiais devem ser ignorados por padrão. Por exemplo, vi (e clones) tem um modo magic que controla isso. Isso permite reduzir a quantidade de escape necessária.

    
por 23.05.2015 / 23:22