Notepad ++ agrupamento / captura não funciona

1

Uma expressão regular como " (Recebido): " deve corresponder a cada " Recebido " que precede um ": ".

N ++ está encontrando para mim toda a string: " Received: " Então, em vez de destacar no meu documento " Recebido " Estou recebendo " Recebido: ". O que está acontecendo? Find and Replace se comporta da mesma forma.

Estou usando a versão 6.5.5 (UNICODE).

    
por sasha 31.12.2015 / 13:12

1 resposta

2

O recurso RegEx que você está vendo é um Lookahead positivo . Se você pesquisar por (Received)(?=:) em:

Received
Received:
[Received]
Received:

apenas a 2ª e a 4ª linhas Received corresponderão.

Você perdeu um ponto de () grupos um pouco.

Agrupar por () permite que você capture caracteres de dentro de um grupo e use-os depois.

Tente substituir ([\d]+): por prefix__suffix em:

12343:
123a:
1111:
222
333:

E você deve receber:

prefix_12343_suffix
123a:
prefix_1111_suffix
222
prefix_333_suffix
    
por 31.12.2015 / 13:36