Notepad ++. Como substituir caracteres diferentes com letras correspondentes de uma só vez?

3

Como localizar e substituir no Notepad ++ vários caracteres diferentes para as letras correspondentes de uma só vez ao longo do texto? Por exemplo, tenho 32 caracteres que quero substituir. Então eu tenho o caractere “À” e quero substituí-lo pela letra “A”. Em seguida, tenho o caractere “Æ” e quero substituí-lo pela letra “Ж” e assim por diante. Geralmente, tenho 32 caracteres e cada vez preciso fazer a mesma operação. Existe alguma maneira de fazer isso de uma vez?

    
por Algis 16.06.2012 / 17:08

3 respostas

1

Às vezes, eu usei o wReplace from sharktime.com . Isso funciona muito bem. Você pode instalá-lo e, em seguida, pode indicar quantos caracteres você deseja alterar.

Eu sei que não é uma solução de estilo plugin , mas funciona. Espero que isso ajude!

    
por 16.06.2012 / 17:33
0

Esta pergunta anterior fornece uma responda. A versão curta é, dentro do Notepad ++ sem plugins, não é possível devido ao modo como Find and Replace funciona.

Eu olharia para o sed ou similar.

    
por 16.06.2012 / 17:48
0

Mesmo com o novo mecanismo RegEx do Notepad ++ 6 que suporta PCRE ( fonte ), há nenhuma abordagem sã (ou seja, com complexidade linear) e confiável (ou seja, garantida para funcionar) que permitirá que você alcance isso em um único Find & Substitua , e muito menos um único Localizar nos arquivos .

Você pode , no entanto, conseguir isso usando Localizar em arquivos duas vezes:

  1. Adicione uma matriz de substituição a cada ocorrência de qualquer um dos caracteres antigos:

    Find what:    ([ÌÍÎÏÐÑ])
    Replace with: '''ÌH'ÍO'ÎΠ'ÏP'ÐC'ÑT''
    Search Mode:  Regular Expression
    

    Isso transforma fooÌbar em foo''Ì'ÌH'ÍO'ÎΠ'ÏP'ÐC'ÑT''bar , por exemplo.

  2. Substitua cada caractere antigo (e a matriz de substituição ) pelo novo caractere correspondente:

    Find what:    ''(.).*?'(.).*?''
    Replace with: 
    Search Mode:  Regular Expression
    

    Isso transforma foo''Ì'ÌH'ÍO'ÎΠ'ÏP'ÐC'ÑT''bar em H , por exemplo.

Note que você precisa atualizar para o Notepad ++ 6.0 ou superior para isso. Embora a expressão regular em si também deva funcionar com o antigo mecanismo RegEx, há um bug que atrapalha os caracteres multibyte em geral.

Como funciona

    • O conjunto de caracteres ([ÌÍÎÏÐÑ]) corresponde a qualquer um desses cinco caracteres.

      Os parênteses transformam isso na primeira subexpressão (veja o próximo item).

    • simboliza a correspondência da primeira subexpressão, ou seja, o caractere que queremos substituir.

    • Todos os outros caracteres são tratados literalmente.

    • A escolha de ' como o delimitador é arbitrária. Você pode usar qualquer outro caractere que quiser.

    • (.) corresponde ao primeiro caractere após '' .

      Os parênteses transformam isso na primeira subexpressão.

    • .*? corresponde ao menor número de caracteres possível.

    • ' simboliza ' seguido pela correspondência da primeira subexpressão, ou seja, o caractere que queremos substituir.

    • (.) corresponde ao primeiro caractere após o caractere que queremos substituir. Pelo nosso design, esse é seu personagem substituto.

      Os parênteses transformam isso na segunda subexpressão.

    • .*?'' corresponde ao menor número de caracteres possível até que o '' final seja encontrado.

Para mais informações sobre expressões regulares, consulte:

por 09.08.2012 / 17:41

Tags