我有一个场景,我想匹配特定的单词,然后匹配一切,直到我得到另一种模式。例如如何匹配,直到得到特定模式的正则表达式
ABC = 145865865
然后发生了任何事情的方式
然后
日期= 11/11/2001年
我已经试过(。*? ),但它只匹配我的场景中的特定线,我之间有多行数据。
我该怎么做?
我有一个场景,我想匹配特定的单词,然后匹配一切,直到我得到另一种模式。例如如何匹配,直到得到特定模式的正则表达式
ABC = 145865865
然后发生了任何事情的方式
然后
日期= 11/11/2001年
我已经试过(。*? ),但它只匹配我的场景中的特定线,我之间有多行数据。
我该怎么做?
最近猜测什么,我想你正在寻找:
ABC=(\d+)[\s\S]*?Date=(\d\d/\d\d/\d{4})
这使用[\s\S]
,意思是“无论是空白字符或者没有空白字符”,这相当于“任何字符” 。 .
也可以设置为匹配任何字符,但我倾向于更喜欢[\s\S]
,因为它只是这样做而不必设置标志。你还没有指定你正在使用的语言,因此我无法告诉你如何设置这样一个标志(它是Python中的re.DOTALL
)。
多行?如果你的意思是你有那么之间的换行符(\ n)的,你需要设置DOTALL标志,如下所示:
Pattern p = Pattern.compile(<your-regex-here>, Pattern.DOTALL)
以上将匹配两个字符串之间换行字符。