Notepad ++. Come sostituire diversi caratteri con lettere corrispondenti in una sola volta?


3

Come trovare e sostituire in Notepad ++ più caratteri diversi per le lettere corrispondenti contemporaneamente nel testo? Ad esempio, ho 32 caratteri che voglio sostituire. Quindi ho il personaggio come "À", e voglio sostituirlo con la lettera "A". Successivamente, ho il carattere come "Æ" e voglio sostituirlo con la lettera "Ж" e così via. In generale, ho 32 caratteri e ogni volta ho bisogno di fare la stessa operazione. C'è un modo per farlo in una volta?

Image demonstrating request

Risposte:


1

A volte ho usato wReplace da sharktime.com . Funziona piuttosto bene. Lo si installa e quindi è possibile indicare il numero di caratteri da modificare come si desidera.

So che non è un collegare soluzione di stile, ma funziona. Spero che questo ti aiuti!

It is very simple to use. This is a before/after image


1
sempre bene menzionare il nome del programma nel post in modo che non debbano passare il mouse sopra il link per vedere quale programma intendi.
barlop

0

Questo la domanda precedente fornisce una risposta. La versione breve è, all'interno di Notepad ++ senza plugin, non è possibile a causa del modo in cui Trova e Sostituisci funziona.

Guarderei usando sed o simili.


0

Anche con il nuovo motore RegEx di Notepad ++ 6 che supporta PCRE ( fonte ), non c'è niente di sano (cioè con complessità lineare) e un approccio affidabile (vale a dire garantito per lavorare) che ti permetterà di ottenere questo risultato in un singolo Trova & amp; Sostituire , per non parlare di un singolo Trova nei file .

tu può , tuttavia, ottenere questo utilizzando Trova nei file due volte:

  1. Aggiungere un matrice sostitutiva ad ogni occorrenza di uno dei vecchi caratteri:

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

    Questo si trasforma fooÌbar in foo``Ì`ÌH`ÍO`ÎΠ`ÏP`ÐC`ÑT``bar, per esempio.

  2. Sostituisci ogni vecchio personaggio (e il matrice sostitutiva ) con il nuovo carattere corrispondente:

    Find what:    ``(.).*?`\1(.).*?``
    Replace with: \2
    Search Mode:  Regular Expression
    

    Questo si trasforma foo``Ì`ÌH`ÍO`ÎΠ`ÏP`ÐC`ÑT``bar in H, per esempio.

Si noti che è necessario eseguire l'aggiornamento a Notepad ++ 6.0 o versioni successive per questo. Mentre la stessa espressione regolare dovrebbe funzionare anche con il vecchio motore RegEx, c'è un bug che blocca i caratteri multibyte in generale.

Come funziona

    • Il set di caratteri ([ÌÍÎÏÐÑ]) corrisponde a uno qualsiasi di questi cinque caratteri.

      Le parentesi trasformano questa nella prima sottoespressione (vedi l'elemento successivo).

    • \1 simboleggia la corrispondenza della prima sottoespressione, cioè il carattere che vogliamo sostituire.

    • Tutti gli altri personaggi sono trattati letteralmente.

    • La scelta di ` poiché il delimitatore è arbitrario. Puoi usare qualsiasi altro personaggio che desideri.

    • (.) corrisponde al primo carattere dopo ``.

      Le parentesi trasformano questa nella prima sottoespressione.

    • .*? corrisponde al minor numero possibile di caratteri.

    • `\1 simboleggia ` seguito dalla corrispondenza della prima sottoespressione, cioè il carattere che vogliamo sostituire.

    • (.) corrisponde al primo carattere dopo il carattere che vogliamo sostituire. Dal nostro design, questo è il suo carattere sostitutivo.

      Le parentesi trasformano questa nella seconda sottoespressione.

    • .*?`` corrisponde al minor numero possibile di personaggi fino alla finale `` si incontra

Per ulteriori informazioni sulle espressioni regolari, consultare:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.