如何匹配,直到获得正则表达式中的特定模式

时间:2012-04-04 06:41:44

标签: regex

我有一个场景,我想匹配特定的单词,然后匹配所有内容,直到我得到另一种模式。例如

ABC = 145865865

然后任何事情都会出现

然后

日期= 11 /二千〇一分之一十一

我试过(。*?)但它只匹配我的场景中的特定行,我之间有多行数据。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

最接近我认为您正在寻找的猜测:

ABC=(\d+)[\s\S]*?Date=(\d\d/\d\d/\d{4})

这使用[\s\S],意思是“空白字符或不是空格字符”,相当于“任何字符”。 .也可以设置为匹配任何字符,但我更倾向于[\s\S],因为它不需要设置标记就可以。你还没有指定你正在使用的语言,所以我无法告诉你如何设置这样的标志(在Python中它是re.DOTALL)。

答案 1 :(得分:0)

多行?如果您的意思是中间有换行符(\ n),那么您需要设置DOTALL标志,如下所示:

Pattern p = Pattern.compile(<your-regex-here>, Pattern.DOTALL)

以上内容将匹配两个字符串之间的换行符。