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ć?

zuk1
źródło
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.

Jonathan Lonowski
źródło
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.

Peter Perháč
źródło
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

Mukul Aggarwal
źródło
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!

Rob Stevenson-Leggett
źródło
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