Używanie RegEX do prefiksu i dołączania w Notepad ++


88

Mam dość dużą listę słów w pliku txt i próbuję znaleźć i zamienić wyrażenie regularne w Notepad ++. Muszę dodać ciąg przed każdym wierszem i po każdym wierszu .. Więc:

wordone
słowotwo
wordthree

zostać

w stanie: "wordone"
w stanie: "wordtwo"
w stanie: "wordthree"

Jak mogę to zrobić?


Przepraszam, te ciągi słów mają znajdować się w osobnych wierszach! Założę się, że teraz wszystko pomieszało ...
zuk1

słodko, oszczędzaj mi dużo
googlowania

Odpowiedzi:


173

Zakładając słowa alfanumeryczne, możesz użyć:

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

Lub, jeśli chcesz tylko podświetlić wiersze i użyć opcji „Zamień wszystko” i „W zaznaczeniu” (z tym samym zastąpieniem):

Search = ^(.+)$

^wskazuje początek linii.
$wskazuje koniec linii.

\1 będzie źródłem dopasowania w nawiasach.


dziękuję, po około 30 minutach poszukiwań dotarłem tutaj po sukces :)
dhaval

Wyrażenia Reg są ratownikami. Dzięki za pomoc.
Techgration

Świetna robota +1 za wyjaśnienie
SSH To

Woot! Właśnie tego potrzebowałem.
Chuck Le Butt

1
W najnowszym N ++ ^([A-Za-z0-9]+)$nie zwrócił żadnych dopasowań, ale ^(.+)$działał w każdym scenariuszu. Dzięki!
Laurie Stearn

29

Dlaczego nie korzystasz z możliwości edycji wielowierszowej Notepad ++?

Przytrzymaj klawisz Alt podczas zaznaczania tekstu (używając zwykłej metody „kliknij i przeciągnij”), aby zaznaczyć tekst w wielu wierszach. Czasami nazywa się to również edycją kolumn.

Możesz umieścić kursor na początku pliku, nacisnąć (i przytrzymać) Alt, Shift, a następnie po prostu naciskać strzałkę w dół lub PageDown, aby zaznaczyć wiersze, które chcesz poprzedzić jakimś tekstem :-) Łatwe. Edycja wielowierszowa to bardzo przydatna funkcja Notepad ++. Jest to również możliwe w programie Visual Studio w ten sam sposób, a także w środowisku Eclipse, przełączając się do trybu wyboru bloku, naciskając klawisze Alt + Shift + A, a następnie zaznaczając tekst w wierszach za pomocą myszy.


1
+1 To naprawdę świetne, nie miałem pojęcia, że ​​możesz to zrobić. Czy można dopisać coś na końcu każdego wiersza, gdy długość każdego wiersza jest inna? Na przykład, gdy szerokość „kolumny” jest różna, byłoby dobrze, gdybyś mógł dołączyć tekst do każdego wiersza. Mam listę funkcji i muszę dodać "();" do każdej linii, ale każda nazwa funkcji ma inną szerokość. Obecnie używam do tego makra, dzięki!
SSH

5
do dołączania prawdopodobnie najlepiej jest po prostu użyć prostego znajdź / zamień przy użyciu "Rozszerzonego" trybu wyszukiwania. Możesz wyszukać zakończenie linii, np. \r\nI zamienić je na<whatever you want to append>\r\n
Peter Perháč

To naprawdę świetne rozwiązanie, szczególnie z powyższym komentarzem DODAJ.
Chuck Le Butt

2
Jest to przydatne do tworzenia przedrostków, ale nie jest zbyt przydatne, jeśli chcesz wstawić postfiks w wierszach o różnej długości (dołącz na końcu). Chciałbym, żeby Notepad ++ miał wbudowane polecenie "Modyfikuj linie", takie jak w Notepad2, które pozwala wybrać linie, nacisnąć Alt + M i dodać tekst przed i / lub po każdej linii.
2015

21

Wyrażenie regularne, którego można użyć:

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

As $&da ci szukany ciąg.

Zobacz: regexr


6
Świetna wzmianka o $&! \1Nie działa we wszystkich środowiskach.
pfabri

Świetna odpowiedź na temat $&. Działa również w SublimeText.
WesternGun

Świetna odpowiedź na temat $&. Działa również w kodzie VS.
P. Frank

5

Użyj makra.

Makro> Rozpocznij nagrywanie

Użyj klawiatury, aby wprowadzić zmiany w powtarzalny sposób np

home> wpisz „w stanie”> koniec> strzałka w dół> strona główna

Następnie wróć do menu i kliknij zatrzymaj nagrywanie, a następnie uruchom makro wiele razy.

To powinno wystarczyć i żadnych komplikacji związanych z wyrażeniami regularnymi!


4
Co mają oznaczać „komplikacje”? :-)
Tomalak

+1 za łatwość użycia! Musiałem dodać „tabulator” na końcu każdego wiersza w pliku i ta wskazówka załatwiła sprawę.
NateJ
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.