Zastąpić nowe wiersze separatorem przecinka w Notepad ++?

165

Mam pytanie w Notepad ++.

Jak mogę wziąć poniższe słowa w Notepad ++ (który jest w różnych wierszach)

Apples
Apricots
Pear
Avocados
Bananas

I zamienić je w akapit z przecinkiem na końcu każdego z nich? Lubię to:

Apples, Apricots, Pear, Avocados, Bananas
user2231530
źródło

Odpowiedzi:

324

Otwórz okno dialogowe Znajdź i zamień (naciśnij CTRL+ H).

Następnie wybierz Regular expressionw sekcji „Tryb wyszukiwania” u dołu.

W Find whatpolu wpisz to:[\r\n]+

W Replace with:

Po przecinku znajduje się spacja.

Spowoduje to również zastąpienie linii, takich jak

Apples

Apricots
Pear

Avocados
Bananas

Gdzie są puste linie.

Jeśli twoje linie mają końcowe spacje, powinieneś je najpierw usunąć. Najprostszym sposobem osiągnięcia tego jest

EDIT -> Blank Operations -> Trim Trailing Space

LUB

TextFX -> TextFX Edit -> Trim trailing spaces

Pamiętaj, aby ustawić tryb wyszukiwania na „Wyrażenie regularne”.

Bonifacio2
źródło
Jeśli w wierszu znajdują się końcowe spacje, możesz użyć _*[\r\n]+. Aby poradzić sobie z pustymi wierszami zamienionymi w nadmiarowe przecinki, możesz wyszukać ,_[,_]+i zamienić wyrażenie regularne na ,_. Alternatywnie pakiet TextFx zawiera polecenie usuwania pustych wierszy, którego można użyć przed dodaniem przecinków. (Zauważ, że w tych blokach kodu zmieniono podkreślenia na spacje).
AdrianHHH
tak, masz rację. Chciałem tylko dać minimalistyczną odpowiedź. Może powinienem więc zmienić odpowiedź.
2
To nie działa w moim przypadku: widzę „0 wystąpień zostało zastąpionych”.
Iain Samuel McLean Elder
3
@IainElder, Tryb wyszukiwania musi być ustawiony na „Wyrażenie regularne” zamiast „Normalny” lub „Rozszerzony”.
Scott Lawrence,
Miałem taki sam wynik jak Iain.
dhochee
34

Oto, co zadziałało dla mnie z podobną listą ciągów w Notepad ++ bez żadnych makr lub czegokolwiek innego:

  1. Kliknij Edytuj -> Puste operacje -> EOL, aby spacja [Wszystkie elementy powinny teraz znajdować się w jednym wierszu oddzielonym „spacją”]

  2. Wybierz dowolną „spację” i wykonaj polecenie Zamień wszystko (według „,”)

trishulpani
źródło
Prosty i elegancki, ładny
reggaeguitar
@trishul Really Nice.
himanshupareek66
32

Odpowiedź fapDaddy za pomocą makra wskazała mi właściwy kierunek.

Oto dokładnie to, co zadziałało dla mnie.

  1. Umieść kursor za pierwszym elementem danych. wprowadź opis obrazu tutaj

  2. Kliknij w menu „Makro> Rozpocznij nagrywanie”. wprowadź opis obrazu tutaj

  3. Wpisz tę sekwencję: Comma, Space, Delete, End.wprowadź opis obrazu tutaj

  4. Kliknij w menu „Makro> Zatrzymaj nagrywanie”. wprowadź opis obrazu tutaj

  5. Kliknij w menu „Makro> Uruchom makro wiele razy ...”. wprowadź opis obrazu tutaj

  6. Kliknij „Uruchom do końca pliku” i kliknij „Uruchom”. wprowadź opis obrazu tutaj

  7. Usuń wszystkie znaki końcowe. wprowadź opis obrazu tutaj

  8. Gotowe!

wprowadź opis obrazu tutaj

Iain Samuel McLean Elder
źródło
5
Ta metoda jest powolna w przypadku tysięcy elementów danych.
Iain Samuel McLean Elder
Świetna odpowiedź. Dzięki :)
Peter T.
Taka świetna informacja przyda się w wielu podobnych sytuacjach. Dzięki!
Moin
Dzięki za udostępnienie informacji. To interesujące.
ironman
4

Dla Notepad ++ 5.9

  1. Naciśnij Ctrl + H
  2. Wybierz tryb wyszukiwania Rozszerzony (\ n, \ r, \ t, \ o, \ x ...)
  3. Wpisz Znajdź, co: \ r \ n
  4. Wprowadź Replace with: ,
  5. Replace_All powinno uzyskać wymagany wynik.
ketan27j
źródło
3
Ta odpowiedź powtarza zaakceptowaną odpowiedź, a ta odpowiedź odnosi się do antycznej wersji Notepad ++, wersja 7.4.x jest już dostępna. Witamy w Stack Overflow, ale prosimy o udzielenie odpowiedzi, dostarczenie nowych informacji lub nowych spostrzeżeń. Powtarzanie istniejących odpowiedzi nie jest przydatne.
AdrianHHH,
W przypadku nowszych wersji npp jest to lepszy sposób.
nurdyguy
To najłatwiejsza odpowiedź. Nie powinienem przechodzić do trybu wyrażeń regularnych tylko po to, aby zastąpić znaki nowej linii przecinkami. N ++ faktycznie działa poprawnie, podczas gdy inne edytory interpretują "\ n" jako powrót karetki ORAZ nowy wiersz, co na początku mnie zmyliło.
BrianVPS
3

Umieść kursor za Jabłkami , w zakładce Makro wybierz Rozpocznij nagrywanie . Wpisz przecinek ( , ), spację () i naciśnij klawisz End , na karcie Makro wybierz Zatrzymaj nagrywanie .

Ctrl + Shift + P dla pojedynczego odtwarzania.

viclim
źródło
Dzięki za tę wskazówkę. A jeśli mam 5000 ++ słów? Czy muszę uruchamiać makro dla każdego z nich osobno? Czy jest prostsza metoda?
user2231530
Jeśli w przyszłości będziesz musiał wykonać podobne zadanie, możesz napisać dla niego skrypt. Najłatwiejszym wyjściem jest prawdopodobnie przejście do zakładki Macro i wybranie kilkukrotnego uruchomienia makra. To zajmie kilka sekund.
viclim
+1 Twoja odpowiedź wskazała mi właściwy kierunek. W mojej odpowiedzi dokładnie udokumentowałem, co mi się sprawdziło.
Iain Samuel McLean Elder
2

Może to brzmieć dziwnie, ale możesz usunąć następną linię, kopiując cały tekst i wklejając go w pasku wyszukiwania programu Firefox, a następnie wklejając go ponownie w notatniku ++

krok 1

krok 2

Dipin prakash
źródło
1
Popraw tę odpowiedź. Linki do obrazów nie będą przydatne.
Drew
2

UŻYWAJ paska wyszukiwania Chrome

1-press CTRL F
2-wklej skopiowany tekst w pasku wyszukiwania
3-press CTRL Anastępnie CTRL Cskopiować ponownie tekst z poszukiwania
4-wklej w Notepad ++
5-replace 'space'z','

Obraz jest jednym kliknięciem
Kliknij dwukrotnie, aby wyświetlić obraz

Mohsin Mahmood
źródło
0

Możesz użyć wiersza poleceń cc.rnl ', 'ConyEdit (wtyczki), aby zastąpić nowe wiersze żądaną zawartością.

Kutas
źródło
0

Dopasowanie wyrażenia regularnego z \s+zadziałało dla mnie:

wprowadź opis obrazu tutaj

user3673
źródło
BTW: wydaje mi się, że dopasowanie wyrażenia regularnego z $^powinno działać, ale zamiast tego pasuje ^$.
user3673
Użycie opcji „Rozszerzony” tuż nad opcją „Wyrażenie regularne” (na Twoim zrzucie ekranu) jest w rzeczywistości najłatwiejszym sposobem osiągnięcia tego.
nurdyguy