我正在处理正则表达式问题,当我尝试在某些标记之间匹配文本时遇到了一些问题。下面是一个正则表达式测试程序,我目前已经完成了它。
https://regex101.com/r/gE8uQ1/1
我正在尝试选择"语句后出现的所有查询文本:"在\ nTIMESTAMP之前。我使用\ n \ d {4} -d {2} -d {2}来表示时间戳,但它不会选择整个查询。为什么会这样?是因为我的修饰语吗?
答案 0 :(得分:1)
(?<=statement: )([ _\-|0-9,:;\.=A-Za-z\(\)"\n\t']+?)(?=(?:\d{4}-\d{2}-\d{2}|$))
试试这个。查看演示。只需将negative lookahead
更改为positive lookahead
,然后将quantifier
添加到character class
。
参见演示。
答案 1 :(得分:0)
您可以将以下内容与g
和s
一起使用(因为您的查询中有新的行与.
不匹配)修饰符:
(?<=statement: )([ _\-|0-9,:;\.=A-Za-z\(\)"\n\t'].+?)(?=\d{4}-\d{2}-\d{2}|$)
^ ^ ^
请参阅DEMO