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

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”.


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 „,”)


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


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.

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.


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


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


0

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


0

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

wprowadź opis obrazu tutaj


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
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.