Trong Notepad ++, bạn có thể sử dụng plugin được gọi là PythonScript để thực hiện công việc. Nếu bạn cài đặt plugin, tạo ra một kịch bản mới như vậy:
Sau đó, bạn có thể sử dụng đoạn mã sau, thay thế các biến regex và chức năng như bạn thấy phù hợp:
import re
#change these
regex = r"[a-z]+sym"
function = str.upper
def perLine(line, num, total):
for match in re.finditer(regex, line):
if match:
s, e = match.start(), match.end()
line = line[:s] + function(line[s:e]) + line[e:]
editor.replaceWholeLine(num, line)
editor.forEachLine(perLine)
đặc biệt này ví dụ hoạt động bằng cách tìm tất cả các kết quả phù hợp trong một dòng cụ thể, sau đó áp dụng hàm cho mỗi kết quả phù hợp. Nếu bạn cần hỗ trợ nhiều dòng, Script Python "Conext-Help" giải thích tất cả các hàm được cung cấp bao gồm các hàm pymlsearch/pymlreplace được định nghĩa trong đối tượng 'editor'.
Khi bạn đã sẵn sàng chạy tập lệnh, hãy chuyển đến tệp bạn muốn chạy trước, sau đó chuyển đến "Tập lệnh>" trong menu Tập lệnh Python và chạy tệp của bạn.
Lưu ý: trong khi bạn có thể sử dụng chức năng hoàn tác của notepad ++ nếu bạn lộn xộn, có thể nên đặt văn bản vào một tệp khác trước để xác minh nó hoạt động.
P.S. Bạn có thể 'tìm' và 'đánh dấu' mọi lần xuất hiện của biểu thức chính quy bằng cách sử dụng hộp thoại tìm kiếm tích hợp của notepad ++ và nếu bạn có thể chọn tất cả, bạn có thể sử dụng chức năng "Characters-> UPPER CASE" của TextFX cho vấn đề cụ thể này, nhưng tôi ' m không chắc chắn cách chuyển từ văn bản được đánh dấu hoặc tìm thấy sang văn bản đã chọn. Nhưng, tôi nghĩ tôi sẽ đăng bài này trong trường hợp bất cứ ai làm ...
Edit: Trong Notepad ++ 6.0 hoặc cao hơn, bạn có thể sử dụng "PCRE (Perl Tương thích Regular Expression) Tìm kiếm/Thay thế" (nguồn: http://sourceforge.net/apps/mediawiki/notepad-plus/?title=Regular_Expressions) Vì vậy, điều này có thể đã được giải quyết bằng cách sử dụng một regex như (.)([A-z])(.+)
với một đối số thay thế như \1\U\2\3
.
Tại sao "Ở đây" và "Thực sự" phù hợp? –