
我使用 Notepad++ 完成了多行查找正規表示式。該行以 INFO 開始,以已知的數字模式結束。當我在輸入正規表示式後單擊“查找”時,我會在主視窗中突出顯示正確的結果。
對於我的用例,我想find all in open documents
使用相同的正規表示式。問題是當我這樣做時,查找結果視窗僅顯示多行匹配的第一行。為了真正有用,我需要在查找結果視窗中顯示整個匹配項(在我的例子中幾乎總是 2 行)。我希望獲取查找結果畫面的輸出並將其用作另一個進程的輸入,這超出了本問題的範圍。
那麼如何顯示整個多行匹配呢?我可以想到如何將其作為腳本或程式語言中的程式來執行此操作,但是如何在 Notepad++ 中執行此操作?
答案1
否定答案:雖然可以透過設定正規表示式選項「.matches newline」來搜尋並選擇多個檔案中的多行,但「尋找結果」窗格將只列出每個找到結果的第一行。
此行為內建於 Notepad++ 中,無法變更。我也查看了列出的插件,但沒有一個可以更改它。
您可以將此作為功能請求在 Notepad++ 社群,但我無法立即解決您的問題。
答案2
嘗試以下操作。假設您的文件以 INFO 一詞開頭並以 999 結尾。
你的正規表示式是:
INFO.+?999
為了使其能夠與多線,在搜尋視窗中,在使用勾選旁邊正規表示式,有一個複選框顯示。匹配換行符。您需要選擇它才能正常工作。
ps 檢查它是否適用於我的 Notepad++ 版本 7.5.1
ps2 尋找僅傳回每次出現的第一行。因此,如果您的匹配項從第 5 行開始,但在第 10 行結束,則它將顯示在從第 5 行開始的搜尋視窗中。
答案3
設法分兩步驟解決:第一步:
- 匹配多行
- 用一些替換它標記並保留有用資訊的第二步:
- 「在文件中尋找」= 尋找標記行 [在此輸入影像描述][1]
[1]:請參閱工作範例https://i.stack.imgur.com/ClQjU.png
答案4
有一個駭客式的方法來實現這一點。
- 在尋找對話方塊中,轉到標記標籤。
- 點擊標記全部
- 現在點擊複製標記文本
- 開啟一個新選項卡,然後貼上複製的文字
現在您將顯示每個搜尋結果相符的所有行,只是它不會出現在視窗中Search results
。另一個缺點是,這僅適用於當前文檔,Find All in All Opened Documents
無法滿足您的要求。
下面的 gif 顯示了在 Zookeeper 日誌上執行這些步驟(關聯)。