使用正则表达式匹配日志文件

时间:2015-05-27 14:44:17

标签: regex

我正在处理正则表达式问题,当我尝试在某些标记之间匹配文本时遇到了一些问题。下面是一个正则表达式测试程序,我目前已经完成了它。

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

我正在尝试选择"语句后出现的所有查询文本:"在\ nTIMESTAMP之前。我使用\ n \ d {4} -d {2} -d {2}来表示时间戳,但它不会选择整个查询。为什么会这样?是因为我的修饰语吗?

2 个答案:

答案 0 :(得分:1)

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

试试这个。查看演示。只需将negative lookahead更改为positive lookahead,然后将quantifier添加到character class

参见演示。

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

答案 1 :(得分:0)

您可以将以下内容与gs一起使用(因为您的查询中有新的行与.不匹配)修饰符:

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

请参阅DEMO