Verwenden von RegEX zum Präfixieren und Anhängen in Notepad ++

88

Ich habe eine ziemlich große Liste von Wörtern in einer txt-Datei und ich versuche, einen regulären Ausdruck in Notepad ++ zu finden und zu ersetzen. Ich muss vor jeder Zeile und nach jeder Zeile eine Zeichenfolge hinzufügen.

wordone
Wort zwei
Wort drei

werden

fähig: "wordone"
fähig: "wordtwo"
fähig: "wordthree"

Wie kann ich das machen?

zuk1
quelle
Entschuldigung, diese Wortketten sollen in getrennten Zeilen stehen! Ich wette, das hat die Dinge jetzt verwirrt ...
zuk1
süß rette mich viel googeln :)
melaos

Antworten:

171

Unter der Annahme alphanumerischer Wörter können Sie Folgendes verwenden:

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

Oder wenn Sie nur die Linien markieren und "Alle ersetzen" und "In Auswahl" verwenden möchten (mit demselben Ersetzen):

Search = ^(.+)$

^zeigt auf den Zeilenanfang.
$zeigt auf das Ende der Linie.

\1 wird die Quellübereinstimmung in den Klammern sein.

Jonathan Lonowski
quelle
Vielen Dank, nach ca. 30 Minuten Suche erreichte ich hier für den Erfolg :)
Dhaval
Reg-Ausdrücke sind Lebensretter. Danke für die Hilfe.
Techgration
Ausgezeichnete Arbeit +1 für die Erklärung
SSH Dies
Woot! Das ist genau das, was ich brauchte.
Chuck Le Butt
In der neuesten Version von N ++ wurden ^([A-Za-z0-9]+)$keine Übereinstimmungen zurückgegeben, aber ^(.+)$in jedem Szenario funktioniert. Vielen Dank!
Laurie Stearn
29

Warum verwenden Sie nicht die mehrzeiligen Bearbeitungsfunktionen von Notepad ++?

Halten Sie die Alt-Taste gedrückt, während Sie Text auswählen (mit Ihrem üblichen Click-and-Drag-Ansatz), um Text über mehrere Zeilen hinweg auszuwählen. Dies wird manchmal auch als Spaltenbearbeitung bezeichnet.

Sie können den Cursor am Anfang der Datei platzieren, Alt (Umschalt) drücken (und gedrückt halten) und dann einfach den Abwärtspfeil oder PageDown gedrückt halten, um die Zeilen auszuwählen, denen Text vorangestellt werden soll :-) Einfach. Die mehrzeilige Bearbeitung ist eine sehr nützliche Funktion von Notepad ++. Auf die gleiche Weise und in Eclipse ist dies auch in Visual Studio möglich, indem Sie durch Drücken von Alt + Umschalt + A in den Blockauswahlmodus wechseln und dann mit der Maus Text über Zeilen hinweg auswählen.

Peter Perháč
quelle
1
+1 Das ist wirklich toll, ich hatte keine Ahnung, dass du das machen kannst. Ist es möglich, etwas an das Ende jeder Zeile anzuhängen, wenn die Länge jeder Zeile unterschiedlich ist? Wenn beispielsweise die Spaltenbreite variiert, wäre es ordentlich, wenn Sie Text an jede Zeile anhängen könnten. Ich habe eine Liste von Funktionen und muss "();" zu jeder Zeile, aber jeder Funktionsname hat eine andere Breite. Ich benutze derzeit ein Makro, um dies zu tun, danke!
SSH Dies ist der
5
Zum Anhängen ist es wahrscheinlich am besten, einfach das Suchen / Ersetzen im Suchmodus "Erweitert" zu verwenden. Sie können nach Zeilenenden suchen, z. B. \r\nund diese ersetzen durch<whatever you want to append>\r\n
Peter Perháč
Dies ist tatsächlich eine wirklich großartige Lösung, insbesondere mit dem obigen APPEND-Kommentar.
Chuck Le Butt
2
Dies ist nützlich für das Präfixieren, aber nicht so nützlich, wenn Sie Zeilen mit gemischter Länge nachfixieren möchten (am Ende anhängen). Ich wünschte, Notepad ++ verfügt über einen integrierten Befehl "Zeilen ändern" wie in Notepad2, mit dem Sie die Zeilen auswählen, Alt + M drücken und vor und / oder nach jeder Zeile Text hinzufügen können.
Dooan
21

Regulärer Ausdruck, der verwendet werden kann:

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

As $&gibt Ihnen die Zeichenfolge, nach der Sie suchen.

Siehe: regexr

Mukul Aggarwal
quelle
6
Große Erwähnung von $&! Das \1funktioniert nicht in allen Umgebungen.
Pfabri
Tolle Antwort über $&. Es funktioniert auch in SublimeText.
WesternGun
Tolle Antwort über $&. Es funktioniert auch in VS-Code.
P. Frank
5

Verwenden Sie ein Makro.

Makro> Aufnahme starten

Verwenden Sie die Tastatur, um Ihre Änderungen auf wiederholbare Weise vorzunehmen, z

home> tippe "able"> end> ​​abwärtspfeil> home

Gehen Sie dann zurück zum Menü und klicken Sie auf Aufnahme beenden. Führen Sie dann mehrmals ein Makro aus.

Das sollte es tun und keine Regex-basierten Komplikationen!

Rob Stevenson-Leggett
quelle
4
Was sollen "Komplikationen" bedeuten? :-)
Tomalak
+1 für einfache Bedienung! Ich musste am Ende jeder Zeile einer Datei einen Tabulator anhängen, und dieser Tipp hat es geschafft.
NateJ