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?


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.


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.


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


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!


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.