2014-11-05 28 views
0

我嘗試刪除所有的換行,如果沒有時間戳(也許一個標籤)是我能找到的所有,我不想取代之前正則表達式:找換行沒有時間戳之前

,但我需要做出某種

IF NOT timestamp (""|\t) BEFORE \n THEN REMOVE \N 

我已經開發到目前爲止還不FINT此行tt denmark 22:05

哪能但不是第一個正則表達式部分之前?

[^\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}\s*]\n{1,} 
+0

您使用的是什麼正則表達式風味? – Taemyr 2014-11-05 10:16:01

回答

0

答案是否定的後顧之憂。

假設您的時間戳匹配\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}然後

(?<!(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})|\s)\s*\n 

應該匹配whitspace而不是由一個時間戳preceeded一個換行符。

並非所有的正則表達式風格都支持負向lookbehind,如果你的風格不支持這種構造,我不認爲有一個優雅的解決方案。 - 你能做的最好的就是列舉可能性;

(\D(\d|\d:\d{2}(:\d{s})?)|[^:](\d{2}(:\d{s})?))\s*\n 

等這將很快變得不可讀。

相關問題