我需要知道正規表示式(notepad++)的語法來幫助我查找/替換文字文件中以下字串的每個實例
字串如下
Where do you want to go next?
some text
some text
some text
Home
現在,「某些文字」可以是單行或多行文字。有時,“你下一步想去哪裡?” string 和 Home 之間只有一行文字。
此列表中的最後一項始終是“Home”一詞,帶有國會大廈 H。
我想從「你下一步要去哪裡?」中刪除該文字區塊的每個實例(在本文檔中實際上出現了數百次)、任何「某些文字」行和「主頁」一詞。
我遇到的問題是“某些文字”是可變的並且從新行開始。我必須承認我不太擅長正規表示式,所以我認為 Superuser.com 上的某個人可以使用一些聲譽點:)
如果您需要更多信息,請告訴我。
謝謝,
里奇
答案1
較新版本的 Notepad++(我認為 >6.1.x)現在支援多行匹配(我現在使用 6.1.5)
在「尋找/取代」對話框中,「正規表示式」單選按鈕旁邊有一個名為「.matches newline」的複選框,這意味著多行匹配。
勾選該複選框,然後使用此正規表示式:
^Where do you want to go next\?.*?^Home$
答案2
這個正規表示式對我有用:
^Where do you want to go next?\r\n(.*\r\n)*?Home$
Windows 用來\r\n
換行。基於 Unix 的系統只使用\n
.
我現在才意識到這個區別,所以謝謝你教我一些新東西。 :-)