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

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

Tenho uma quantidade enorme de linhas contendo isso por exemplo este texto: OU111_DI_Z006_1

Observe que alguns caracteres são diferentes em cada linha, 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

Responder1

Na marca da janela de substituiçãoExpressão regulare

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

Substituir com: \1X\2

http://docs.notepad-plus-plus.org/index.php/Regular_Expressions

Responder2

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 forem UNIQUE e não puderem aparecer em nenhum lugar, exceto no início de cada substring, então um regex simples pode funcionar de forma muito genérica:

Find:  (OU.*)(Z0.*)
Replace:  \1X\2

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

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

NOTA: isso é muito semelhante à resposta do marbel82, exceto que é 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 construir uma regex genérica para suas características.

informação relacionada