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.