Sử dụng PythonScript Notepad ++ plugin cho Python chức năng tìm kiếm Regular Expression.
Xem here cho các chức năng
Editor.pysearch(expression, function[, flags[, startLine[, endLine]]])
hoặc
Editor.pymlsearch(expression, function[, flags[, startPosition[, endPosition]]])
Dưới đây là một chương trình đơn giản bằng cách sử dụng python thường xuyên chức năng tìm kiếm Biểu editor.pysearch()
tôi đã để lại rất nhiều mã debug trong, do đó bạn có thể thấy những gì đang xảy ra trong quá trình chạy hàm.
# $Revision: 1.3 $
# $Author: dot $
# $Date: 2012/04/19 00:03:26 $
from Npp import *
import re, string
expression = notepad.prompt(
"Enter the RegEx search string then press Enter",
"RegEx and Search" ,
"")
debug = True
#debug = False
if debug:
bufferID = notepad.getCurrentBufferID()
if debug:
# Show console for debugging
console.clear()
console.show()
if expression != None:
expressionSansNl = expression.replace('\r\n', '')
if debug:
console.write(expression + "\n")
# First we'll start an undo action, then Ctrl-Z will undo the actions of the whole script
editor.beginUndoAction()
if debug:
console.write('editor.pysearch(r"%s" % expressionSansNl, None)\n')
editor.pysearch(r"%s" % expressionSansNl, None)
# End the undo action, so Ctrl-Z will undo the above two actions
editor.endUndoAction()
# Debug
if debug:
notepad.activateBufferID(bufferID)
Ánh xạ tập lệnh này sang lối tắt Notepad ++ Ctrl+<ChooseALetter>
và chạy nó.
Nhập tìm kiếm RegEx action(421|732|983)
Theo tài liệu về lại Python here, toán tử RegEx |
được hỗ trợ.
Tôi chưa thử nghiệm điều này - có thể tham số None trong hàm pysearch() cần
là một hàm sẽ chọn chuỗi kết quả.Theo tài liệu here,
, hàm sẽ trả về một MatchObject python. Tôi nghĩ rằng có một cách để có được chuỗi đối sánh
từ MatchObject và chọn giao diện tiếp theo của đối sánh đó
chuỗi trong đối tượng trình chỉnh sửa. Tôi sẽ đăng bản sửa đổi mới của câu trả lời khi tôi đã hoàn tất mã hóa
và kiểm tra điều này.
Nguồn
2012-04-20 17:05:21
Công cụ regex notepad ++ kể từ phiên bản 10.1.1 có toán tử OR. –