Utilizzo di RegEX come prefisso e aggiunta in Notepad ++


88

Ho un elenco abbastanza ampio di parole in un file txt e sto cercando di eseguire un'espressione regolare trova e sostituisci in Notepad ++. Devo aggiungere una stringa prima di ogni riga e dopo ogni riga .. In modo che:

wordone
wordtwo
wordthree

diventare

abile: "wordone"
in grado: "wordtwo"
in grado: "wordthree"

Come posso fare questo?


Spiacente, quelle stringhe di parole devono essere su righe separate! Scommetto che ora ha confuso le cose ...
zuk1

dolce salvami un sacco di googling :)
melaos

Risposte:


173

Supponendo parole alfanumeriche, puoi usare:

Search  = ^([A-Za-z0-9]+)$
Replace = able:"\1"

Oppure, se desideri solo evidenziare le linee e utilizzare "Sostituisci tutto" e "Nella selezione" (con la stessa sostituzione):

Search = ^(.+)$

^indica l'inizio della linea.
$punta alla fine della linea.

\1 sarà la corrispondenza di origine tra parentesi.


grazie, dopo circa 30 minuti di ricerca sono arrivato qui per avere successo :)
dhaval

Le espressioni reg sono salvavita. Grazie per l'aiuto.
Techgration

Ottimo lavoro +1 per la spiegazione
SSH Questo

Woot! Questo è proprio quello di cui avevo bisogno.
Chuck Le Butt

1
Nell'ultimo N ++, ^([A-Za-z0-9]+)$non ha restituito corrispondenze, ma ha ^(.+)$funzionato in ogni scenario. Grazie!
Laurie Stearn

29

Perché non usi le funzionalità di modifica multilinea di Notepad ++?

Tieni premuto Alt mentre selezioni il testo (usando il tuo solito approccio di clic e trascina) per selezionare il testo su più righe. Questa operazione viene talvolta definita anche modifica delle colonne.

Puoi posizionare il cursore all'inizio del file, premere (e tenere premuto) Alt, Maiusc e poi continuare a premere la freccia giù o Pagina Giù per selezionare le righe che si desidera anteporre del testo :-) Facile. La modifica su più righe è una funzionalità molto utile di Notepad ++. È anche possibile in Visual Studio, allo stesso modo, e anche in Eclipse passando alla modalità di selezione dei blocchi premendo Alt + Maiusc + A e quindi utilizzare il mouse per selezionare il testo su più righe.


1
+1 Questo è davvero fantastico, non avevo idea che tu potessi farlo. È possibile aggiungere qualcosa alla fine di ogni riga, quando la lunghezza di ogni riga è diversa? Ad esempio, quando la larghezza della "colonna" varia, sarebbe opportuno aggiungere del testo a ciascuna riga. Ho un elenco di funzioni e devo aggiungere "();" a ciascuna riga ma ogni nome di funzione ha una larghezza diversa. Attualmente sto usando una macro per farlo, grazie!
SSH il

5
per l'aggiunta è probabilmente meglio usare solo la semplice ricerca / sostituzione utilizzando la modalità di ricerca "Estesa". È possibile cercare la fine della riga, ad esempio \r\ne sostituirla con<whatever you want to append>\r\n
Peter Perháč

Questa è in realtà un'ottima soluzione, specialmente con il commento APPEND sopra.
Chuck Le Butt

2
Questo è utile per il prefisso, ma non così utile se vuoi postfissare righe di lunghezza mista (aggiungere alla fine). Vorrei che Notepad ++ avesse un comando "Modifica linee" incorporato come in Notepad2, che ti consente di selezionare le linee, premere Alt + M e aggiungere testo prima e / o dopo ogni riga.
thdoan

21

Espressione regolare che può essere utilizzata:

Find: \w.+
Replace: able:"$&"

As, $&ti darà la stringa che cerchi.

Riferimento : regexr


6
Grande menzione di $&! Il \1non funziona in tutti gli ambienti.
pfabri

Ottima risposta in merito $&. Funziona anche in SublimeText.
WesternGun

Ottima risposta in merito $&. Funziona anche nel codice VS.
P. Frank

5

Usa una macro.

Macro> Avvia registrazione

Usa la tastiera per apportare le modifiche in modo ripetibile, ad es

home> digita "abilitato"> fine> freccia giù> home

Quindi torna al menu e fai clic su interrompi registrazione, quindi esegui una macro più volte.

Dovrebbe bastare e niente complicazioni basate su espressioni regolari!


4
Cosa dovrebbe significare "complicazioni"? :-)
Tomalak

+1 per facilità d'uso! Avevo bisogno di aggiungere una "scheda" alla fine di ogni riga in un file e questo suggerimento ha funzionato.
NateJ
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.