Notepad ++: Substitua o 10º caractere se o 4º ao 8º caractere contiver “B490” em um arquivo de texto

Notepad ++: Substitua o 10º caractere se o 4º ao 8º caractere contiver “B490” em um arquivo de texto

Preciso pesquisar “FE45” entre as posições 10-31 e, em seguida, substituir o caractere entre 3 e 6 por zzzz.

Arquivo de exemplo:

123AAA345FE45D
234BBB335DDFFFEEDFE45E
345CCC234ERFDF3FR06G

Meu desejo :-)

123000345FE45D
234000335DDFFFEEDFE45E
345000234ERFDF3FR06G

Como posso modificar esta expressão para obter os resultados acima?

Desde já, obrigado!

Responder1

Use ()para criar grupos que você pode referenciar pela ordem de aparecimento

Encontrar:

(b490)(.{2})(.{5})

Substituir:

\1\2ZZZZZ

Responder2

  • Ctrl+H
  • Encontre o que:^...\K...(?=.{0,27}FE45)
  • Substituir com:000
  • verifique Caso de correspondência
  • confira Envolver
  • verifique expressão regular
  • NÃO VERIFIQUE. matches newline
  • Replace all

Explicação:

^           : beginning of line
...         : 3 any character but newline
\K          : forget what we have seen until this position
...         : 3 any character but newline
(?=         : lookahead, zero length assertion, make sure we have after this position
  .{0,27}   : 0 up to 27 any character but newline
  FE45      : literally FE45
)           : end lookahead

Resultado para determinado exemplo:

123000345FE45D
234000335DDFFFEEDFE45E
345CCC234ERFDF3FR06G

informação relacionada