Adicione uma letra no meio de um texto em cada linha, o Notepad ++

1

Eu tenho uma quantidade enorme de linhas contendo este, por exemplo, este texto: OU111_DI_Z006_1

Observe que alguns caracteres são diferentes em todas as linhas, representados por @. Assim: OU @@@ _ @@ _ Z0 @@ __ @

Como posso usar a função de substituição de pesquisa para adicionar o caractere X antes de Z?

Assim: OU111_DI_XZ006_1

    
por Håkon Thorbjørnsen 16.06.2016 / 08:33

2 respostas

5

Na marca da janela de substituição Expressão regular e

Encontre o que: (OU..._.._)(Z0.._.)

Substitua por: X

link

    
por 16.06.2016 / 09:46
0

Isso depende dos seus dados. Os caracteres "OU" e "Z0" são exclusivos para mostrar o início de cada substring ... ou podem aparecer aleatoriamente (por exemplo, OU222_Z0_Z055 ..)?

Se eles são únicos e possivelmente não podem aparecer em qualquer lugar, exceto como o início de cada substring, então um regex simples pode funcionar muito genericamente:

Find:  (OU.*)(Z0.*)
Replace:  X

Aqui, você está agrupando tudo (. *) que começa com OU como "\ 1". E agrupando tudo iniciando Z0 como "\ 2". (Os parênteses criam os grupos.)

A string de substituição é apenas colocar um X entre os grupos 1 e 2.

NOTA: isso é muito semelhante à resposta de marbel82, exceto que isso é mais genérico, porque você não está especificando quantos sublinhados e caracteres devem existir.

..

Se, no entanto, essa OU e Z0 não forem marcadores exclusivos, você precisará entender melhor seus dados para criar um regex genérico para suas características.

    
por 16.06.2016 / 13:24

Tags