Regex no Notepad ++ 6

3

Então, O Notepad ++ foi atualizado para a v6.0 . Um de seus novos recursos é PCRE (Perl Compatible Regular Expressions) .

Eu tentei usar esse novo recurso para encontrar e substituir coisas em um arquivo. Eu tentei a expressão regular:

{\$([a-zA-Z_]*)}

e ele gritou comigo, dizendo "Expressão regular inválida".

Eu testei este regex em outros programas (como o meu IDE principal, Geany ), e funcionou bem.

Por que isso não funciona no Notepad ++ 6.0?

    
por Rocket Hazmat 06.04.2012 / 16:52

1 resposta

3

Você tem que escapar do {} da seguinte forma:

\{\$([a-zA-Z_]*)\}

Eu assumo que o Geany e o rubular.com não usam o PCRE (ou o usam de forma diferente). Por favor, note que {} são geralmente usados para denotar quantificadores.

Sem ter verificado a fonte, só posso supor que o Notepad ++ tenta ser muito inteligente antes de passar a expressão regular para a biblioteca PCRE. Se eu executar o seguinte código no PHP:

echo preg_match( '{\$([a-zA-Z_]*)}', '{$something}' );

Imprime 1 imediatamente. Não há necessidade de escapar de nada.

Desculpe, não posso explicar : (

    
por 06.04.2012 / 17:08