Sử dụng RegEX để tạo tiền tố và thêm vào Notepad ++


88

Tôi có một danh sách khá lớn các từ trong tệp txt và tôi đang cố thực hiện tìm và thay thế regex trong Notepad ++. Tôi cần thêm một chuỗi trước mỗi dòng và sau mỗi dòng .. Vì vậy:

wordone
wordtwo
từ ba

trở nên

có thể: "wordone"
có thể: "wordtwo"
có thể: "wordthree"

Tôi có thể làm cái này như thế nào?


Xin lỗi những chuỗi từ đó có nghĩa là ở trên các dòng riêng biệt! Tôi cá rằng bây giờ đã làm mọi thứ nhầm lẫn ...
zuk1

ngọt tiết kiệm cho tôi rất nhiều googling :)
melaos

Câu trả lời:


171

Giả sử các từ gồm cả chữ và số, bạn có thể sử dụng:

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

Hoặc, nếu bạn chỉ muốn đánh dấu các dòng và sử dụng "Replace All" & "In Selection" (với cùng một thay thế):

Search = ^(.+)$

^trỏ đến đầu dòng.
$chỉ đến cuối dòng.

\1 sẽ là đối sánh nguồn trong ngoặc đơn.


cảm ơn bạn, sau khoảng 30 phút tìm kiếm tôi đạt vào đây để thành công :)
dhaval

Biểu thức Reg là cứu cánh. Cảm ơn đã giúp đỡ.
Tích hợp công nghệ

Xuất sắc +1 vì giải thích
SSH This

Chà! Đây chỉ là những gì tôi cần.
Chuck Le Butt

Trong N ++ mới nhất, ^([A-Za-z0-9]+)$không trả về kết quả phù hợp nào, nhưng ^(.+)$hoạt động trong mọi tình huống. Cảm ơn!
Laurie Stearn

29

Tại sao bạn không sử dụng khả năng chỉnh sửa đa dòng của Notepad ++?

Nhấn và giữ phím Alt trong khi chọn văn bản (sử dụng phương pháp nhấp và kéo thông thường của bạn) để chọn văn bản trên nhiều dòng. Điều này đôi khi cũng được gọi là chỉnh sửa cột.

Bạn có thể đặt con trỏ ở đầu tệp, Nhấn (và giữ) Alt, Shift và sau đó tiếp tục nhấn mũi tên xuống hoặc PageDown để chọn các dòng mà bạn muốn thêm vào trước một số văn bản :-) Dễ dàng. Chỉnh sửa đa dòng là một tính năng rất hữu ích của Notepad ++. Nó cũng có thể trong Visual Studio, theo cách tương tự và cả trong Eclipse bằng cách chuyển sang Chế độ chọn khối bằng cách nhấn Alt + Shift + A, sau đó sử dụng chuột để chọn văn bản trên các dòng.


1
+1 Điều này thực sự tuyệt vời, tôi không biết bạn có thể làm được điều này. Có thể nối một thứ gì đó vào cuối mỗi dòng khi độ dài của mỗi dòng khác nhau không? Ví dụ: khi chiều rộng 'cột' thay đổi, sẽ rất gọn gàng nếu bạn có thể nối văn bản vào mỗi dòng. Tôi có một danh sách các hàm và tôi cần thêm "();" đến mỗi dòng nhưng mỗi tên hàm có độ rộng khác nhau. Tôi hiện đang sử dụng Macro để thực hiện việc này, cảm ơn!
SSH này

5
để bổ sung có lẽ tốt nhất là chỉ sử dụng tìm / thay thế đơn giản bằng chế độ tìm kiếm "Mở rộng". Bạn có thể tìm kiếm kết thúc dòng, ví dụ: \r\nvà thay thế bằng<whatever you want to append>\r\n
Peter Perháč

Đây thực sự là một giải pháp thực sự tuyệt vời, đặc biệt là với nhận xét APPEND ở trên.
Chuck Le Butt

2
Điều này rất hữu ích cho việc tạo tiền tố, nhưng không quá hữu ích nếu bạn muốn đăng tiền tố các dòng có độ dài hỗn hợp (thêm vào ở cuối). Tôi ước gì Notepad ++ có lệnh "Modify Lines" được tích hợp sẵn như trong Notepad2, cho phép bạn chọn các dòng, nhấn Alt + M và thêm văn bản vào trước và / hoặc sau mỗi dòng.
thdoan

21

Biểu thức chính quy có thể được sử dụng:

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

Như, $&sẽ cung cấp cho bạn chuỗi mà bạn tìm kiếm.

Tham khảo: regexr


6
Đề cập tuyệt vời của $&! Nó \1không hoạt động trong mọi môi trường.
pfabri

Câu trả lời tuyệt vời về $&. Nó cũng hoạt động trong SublimeText.
WesternGun

Câu trả lời tuyệt vời về $&. Nó cũng hoạt động trong mã VS.
P. Frank

5

Sử dụng Macro.

Macro> Bắt đầu ghi

Sử dụng bàn phím để thực hiện các thay đổi của bạn theo cách có thể lặp lại, ví dụ:

trang chủ> nhập "có thể"> kết thúc> mũi tên xuống> trang chủ

Sau đó quay lại menu và nhấp vào dừng ghi rồi chạy macro nhiều lần.

Điều đó nên làm được và không có biến chứng dựa trên regex!


4
"Biến chứng" có nghĩa là gì? :-)
Tomalak

+1 để dễ sử dụng! Tôi cần thêm 'tab' vào cuối mỗi dòng trong tệp và mẹo này đã thực hiện được mẹo.
NateJ
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.