正则表达式匹配最多2行

时间:2017-02-01 16:04:03

标签: java regex

我似乎无法弄清楚这一点。 我想要一些匹配2个KEYWORDS:KEYWORD1和KEYWORD2的东西。顺序无关紧要KEYWORD2可以出现在KEYWORD1之前或之后。在KEYWORD1和KEYWORD2之间可以是其他字符,但在2行内最大扫描

显然KEYWORD1和2只是一个占位符。

应该匹配的例子:

"I saw KEYWORD1 walking around with KEYWORD2 yesterday"
"I saw KEYWORD1 walking around with \n KEYWORD2 yesterday"
"KEYWORD2 was spotted playing with KEYWORD1."
"KEYWORD2KEYWORD1 are best buddies."

不应该匹配示例

"I saw KEYWORD1 walking around with \n\n KEYWORD2 yesterday."

我被告知这个正则表达式,只要存在KEYWORD1,就可以向前看(它不会消耗),继续查找KEYWORD2。但是由于有多个换行符,这将找到匹配。

(?i)(?=[\\w\\s]*(KEYWORD1))[\\w\\s]*(KEYWORD2)

1 个答案:

答案 0 :(得分:2)

(KEYWORD1.*\n?.*KEYWORD2)|(KEYWORD2.*\n?.*KEYWORD1)