2015-05-27 117 views
0

我正在處理正則表達式問題,並且在嘗試匹配特定標記之間的文本時遇到了一些問題。下面是一個正則表達式測試器,其中包含我迄今爲止完成的一些測試使用正則表達式來匹配日誌文件

https://regex101.com/r/gE8uQ1/1

我想選擇哪個後顯示的查詢文本中所有「的聲明:」和\ nTIMESTAMP之前。我用\ n \ d {4} -d {2} -d {2}來表示時間戳,但它不會選擇整個查詢。這是爲什麼發生?是因爲我的修飾符嗎?

回答

1
(?<=statement:)([ _\-|0-9,:;\.=A-Za-z\(\)"\n\t']+?)(?=(?:\d{4}-\d{2}-\d{2}|$)) 

嘗試this.See演示。只需將您的negative lookahead更改爲positive lookahead並將quantifier添加到character class即可。

查看演示。

https://regex101.com/r/gE8uQ1/5

+0

你錯過了在最後一個'$':d –

+0

@karthikmanchala啊感謝名單...........錯過了它:) – vks

0

您可以使用gs以下(因爲你querys具有不通過.匹配的新行)修飾符:

(?<=statement:)([ _\-|0-9,:;\.=A-Za-z\(\)"\n\t'].+?)(?=\d{4}-\d{2}-\d{2}|$) 
               ^^    ^

DEMO