Thay thế các dòng mới bằng dấu phân cách bằng dấu phẩy bằng Notepad ++?


165

Tôi có một câu hỏi Notepad ++.

Làm cách nào tôi có thể lấy các từ bên dưới trong Notepad ++ (nằm trên các dòng khác nhau)

Apples
Apricots
Pear
Avocados
Bananas

Và biến chúng thành một đoạn có dấu phẩy ở cuối mỗi câu? Như thế này:

Apples, Apricots, Pear, Avocados, Bananas

Câu trả lời:


324

Mở hộp thoại tìm và thay thế (nhấn CTRL+ H).

Sau đó chọn Regular expressiontrong phần Mode Chế độ tìm kiếm 'ở dưới cùng.

Trong Find whattrường nhập này:[\r\n]+

Trong Replace with:

Có một khoảng trống sau dấu phẩy.

Điều này cũng sẽ thay thế các dòng như

Apples

Apricots
Pear

Avocados
Bananas

Nơi có những hàng trống.

Nếu các dòng của bạn có dấu cách trống, bạn nên xóa chúng trước. Cách đơn giản nhất để đạt được điều này là

EDIT -> Blank Operations -> Trim Trailing Space

HOẶC LÀ

TextFX -> TextFX Edit -> Trim trailing spaces

Đảm bảo đặt Chế độ tìm kiếm thành "Biểu thức thông thường".


Nếu có dấu cách trên dòng bạn có thể cho _*[\r\n]+. Để xử lý các dòng trống biến thành dấu phẩy thừa, bạn có thể thực hiện tìm kiếm biểu thức chính quy ,_[,_]+và thay thế bằng ,_. Ngoài ra, gói TextFx có lệnh xóa các dòng trống có thể được sử dụng trước khi thêm dấu phẩy. (Lưu ý thay đổi dấu gạch dưới thành khoảng trắng trong các khối mã này.)
AdrianHHH

vâng bạn rất đúng Tôi chỉ cố gắng đưa ra một câu trả lời tối giản. Có lẽ tôi nên chỉnh sửa câu trả lời rồi.

2
Điều này không hiệu quả với tôi: Tôi thấy "0 lần xuất hiện đã được thay thế."
Iain Samuel McLean Elder

3
@IainElder, Chế độ tìm kiếm phải được đặt thành "Biểu thức chính quy" thay vì "Bình thường" hoặc "Mở rộng".
Scott Lawrence

Tôi đã có kết quả tương tự như Iain.
dhochee

34

Đây là những gì làm việc cho tôi với một danh sách các chuỗi tương tự trong Notepad ++ mà không có bất kỳ macro hay bất cứ thứ gì khác:

  1. Nhấp vào Chỉnh sửa -> Thao tác trống -> EOL vào khoảng trắng [Tất cả các mục bây giờ sẽ nằm trong một dòng được phân tách bằng 'khoảng trắng']

  2. Chọn bất kỳ 'khoảng trắng' nào và thực hiện Thay thế tất cả (bằng ',')


Đơn giản và thanh lịch, tốt đẹp
reggaeg Ức

@trishul Thực sự tốt đẹp.
himanshupareek66

32

Câu trả lời của fapDaddy bằng cách sử dụng macro chỉ cho tôi đi đúng hướng.

Đây chính xác là những gì làm việc cho tôi.

  1. Đặt con trỏ sau mục dữ liệu đầu tiên. nhập mô tả hình ảnh ở đây

  2. Nhấp vào 'Macro> Bắt đầu ghi' trong menu. nhập mô tả hình ảnh ở đây

  3. Gõ chuỗi này: Comma, Space, Delete, End.nhập mô tả hình ảnh ở đây

  4. Nhấp vào 'Macro> Dừng ghi' trong menu. nhập mô tả hình ảnh ở đây

  5. Nhấp vào 'Macro> Chạy Macro nhiều lần ...' trong menu. nhập mô tả hình ảnh ở đây

  6. Nhấp vào 'Chạy cho đến khi kết thúc tệp' và nhấp vào 'Chạy'. nhập mô tả hình ảnh ở đây

  7. Loại bỏ bất kỳ ký tự dấu. nhập mô tả hình ảnh ở đây

  8. Làm xong!

nhập mô tả hình ảnh ở đây


5
Phương pháp này chậm đối với hàng ngàn mục dữ liệu.
Iain Samuel McLean Elder

Câu trả lời chính xác. Cảm ơn :)
Peter T.

Một thông tin tuyệt vời như vậy, sẽ hữu ích trong nhiều tình huống tương tự. Cảm ơn!
Moin

Cảm ơn vì đã chia sẻ thông tin. Thật thú vị.
sắt

4

Dành cho Notepad ++ 5.9

  1. Nhấn Ctrl + H
  2. Chọn Chế độ tìm kiếm mở rộng (\ n, \ r, \ t, \ o, \ x ...)
  3. Nhập Tìm gì: \ r \ n
  4. Nhập Thay thế bằng : ,
  5. Thay thế sẽ nhận được kết quả cần thiết.

3
Câu trả lời này lặp lại câu trả lời được chấp nhận và câu trả lời này đề cập đến một phiên bản cổ của Notepad ++, phiên bản 7.4.x hiện có sẵn. Chào mừng bạn đến với Stack Overflow nhưng vui lòng làm cho bạn câu trả lời cung cấp thông tin mới hoặc cung cấp thông tin chi tiết mới. Lặp lại các câu trả lời hiện có là không hữu ích.
AdrianHHH

Đối với các phiên bản mới hơn của npp, đây là cách tốt hơn để làm điều này.
nurdyguy

Đây là câu trả lời dễ nhất. Tôi không cần phải chuyển sang chế độ Biểu thức chính quy chỉ để thay thế dòng mới bằng dấu phẩy. N ++ thực sự hoạt động chính xác trong khi các biên tập viên khác hiểu "\ n" là nguồn cấp dữ liệu AND dòng trở lại, điều này làm tôi bối rối lúc đầu.
BrianVPS

3

Đặt con trỏ của bạn sau Táo , trong Tab Macro , chọn Bắt đầu ghi . Nhập ký tự dấu phẩy ( , ), dấu cách () và nhấn phím Kết thúc , trong tab Macro, chọn Dừng ghi .

Ctrl + Shift + P để phát lại đơn.


Cảm ơn vì lời khuyên đó. Nếu tôi có 5000 từ ++ thì sao? Tôi có cần chạy macro cho tất cả chúng không? Có một phương pháp dễ dàng hơn?
dùng2231530

Nếu bạn sẽ phải thực hiện nhiệm vụ tương tự trong tương lai, bạn có thể muốn viết một kịch bản cho nó. Cách dễ dàng có lẽ chỉ cần vào Tab Macro và chọn chạy macro nhiều lần. Nó sẽ được thực hiện trong vài giây.
13

+1 Câu trả lời của bạn chỉ cho tôi đi đúng hướng. Trong câu trả lời của tôi, tôi đã ghi lại chính xác những gì làm việc cho tôi.
Iain Samuel McLean Elder

2

Điều này nghe có vẻ lạ nhưng bạn có thể xóa dòng tiếp theo bằng cách sao chép toàn bộ văn bản và dán nó vào thanh tìm kiếm firefox, sau đó dán lại vào notepad ++

bước 1

bước 2


1
Hãy cải thiện câu trả lời này. Liên kết đến hình ảnh sẽ không hữu ích.
vẽ

2

SỬ DỤNG Thanh tìm kiếm của Chrome

1-bấm CTRL F
2-dán văn bản đã sao chép vào thanh tìm kiếm
3-bấm CTRL Atheo sau CTRL Cđể sao chép lại văn bản từ tìm kiếm
4-dán trong Notepad ++
5 thay thế 'space'bằng','

1 cú nhấp chuột cho hình ảnh
2-click cho hình ảnh


0

Bạn có thể sử dụng dòng lệnh cc.rnl ', 'của ConyEdit (một plugin) để thay thế các dòng mới bằng nội dung bạn muốn.


0

Một trận đấu regex với \s+làm việc cho tôi:

nhập mô tả hình ảnh ở đây


BTW: đối với tôi có vẻ như một trận đấu regex $^sẽ hoạt động, nhưng thay vào đó, nó lại khớp ^$.
dùng3673

Sử dụng tùy chọn "Mở rộng" ngay phía trên tùy chọn "Biểu thức chính quy" (trong ảnh chụp màn hình của bạn) thực sự là cách dễ nhất để thực hiện việc này.
nurdyguy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.