我試圖編寫一個正則表達式來將歷史文件中的文本塊從我正在構建的項目中保存下來。目前我打算在我的文本編輯器(無論是textmate還是sublimetext 2)中手動執行此提取操作,但最終我會使用python或php(尚未決定)將其構建爲腳本化過程。正則表達式Lookbehind問題
都在我的歷史文件的歷史記錄條目的格式爲:
YYYY-MM-DD - Chris -- Version: X.X.X
====================================
- Lorem ipsum dolor sit amet, vim id libris epicuri
- Et eos veri quodsi appetere, an qui saepe malorum eloquentiam.
...
--
其中x是在工作下完成的版本號。
我試圖從版本號拉到最後的雙破折號分隔符,它表示文本塊的結尾。
我開始通過創建正則表達式語句來選擇節標題,其工作原理:
(^[\d]{4}-[\d]{2}-[\d]{2}\s-\s[\w]+\s--\sVersion:\s)[\d\.]+$
但是,當我試圖把我的括號內的模式進入的外觀背後失敗:
(?<=^[\d]{4}-[\d]{2}-[\d]{2}\s-\s[\w]+\s--\sVersion:\s)[\d\.]+$
我一直在環顧四周,迄今爲止,它看起來像這個lookbehind格式是正確的。我似乎無法弄清楚我錯過了什麼。有任何想法嗎?
Lookbehind的幾乎從來沒有這樣用過。 – sln
嘿,我猜這是其中一種罕見的情況;) –
我說的幾乎從來沒有,因爲你可以簡單地捕捉你想要的東西而不排除任何東西,所以你不用它來強制一個條件。您正在使用它從不需要的匹配(組0)中排除。 – sln