start
some
T1
random
T2
text
T3
end
應導致:
start
T1
T2
T3
end
我嘗試使用
>(?<=start)[\S\s]*?(?=end)
匹配的開始之間的一切,並最終
and excl UDE T1 T2 T3有:
^(?!T\d)
是否有可能將它們組合成可以粘貼到記事本++的人不熟悉編寫代碼來做到這一點通過幾個步驟一個正則表達式?
start
some
T1
random
T2
text
T3
end
應導致:
start
T1
T2
T3
end
我嘗試使用
>(?<=start)[\S\s]*?(?=end)
匹配的開始之間的一切,並最終
and excl UDE T1 T2 T3有:
^(?!T\d)
是否有可能將它們組合成可以粘貼到記事本++的人不熟悉編寫代碼來做到這一點通過幾個步驟一個正則表達式?
您可以使用正則表達式:
查找:^(?!T\d|start).*\R(?=(^(?!start$).*\R)*end$)
替換:(空)
.
匹配換行符:號
點擊 「全部替換」
這些假設:
start
和end
分隔符應各自對自己的線(所以不或start ///
)的正文,start
,然後end
)start
之後不能再有start
之前,你有一個end
。超前使得這是一個相當低效的正則表達式,因爲每次比賽都需要再次檢查文本,直到下一個end
。
謝謝,也指出了限制。但有一個問題,即在'開始'分隔符之前有超過50行的文本文件中的所有內容都會被匹配。即使每50行都是一樣的。 –
我再次嘗試,並且極限不是50,而是191.我嘗試在分隔符開始之前添加191行「TEST」。這是爲什麼? –
這看起來像Notepad ++中的一個限制,因爲在正則表達式本身中絕對沒有這個原因。我認爲在一定數量的行和/或字符後,前瞻會中止,這不應該完成。 – trincot
不,這是不可能的。使用PythonScript更容易。另外,可以寫一個正則表達式,但是需要幾個* Replace All *命令來刪除所有不必要的Tn行,然後用正則表達式來獲取'start \ K(?s:。*?)(?=結束)'可以使用。 –