这是我的输入字符串
2014.10.30: b
l
ah bl
a
h
2014.10.30: bfoo
lah
b
l
ah
2014.10.30: bart1
lah
baloon
l
ah
2014.10.30: carb
lah
b
l
ah
2014.10.30: farb2
lah
baloon
l
ah
2014.10.30: carb
lah
b
l
ah
2014.10.30: bom
lah
baloob
l
ah
etc
我想匹配以下内容(在2014年里面有baloon这个词之间):
2014.10.30: bart1
lah
baloon
l
ah
和
2014.10.30: farb2
lah
baloon
l
ah
这就是我所拥有的,
/(2014)(.*?baloon.*)(?:2014)/gsmi
这是从2014年第一次出现的开始就匹配的。它只返回一个从下到上的匹配。 regex101这里
答案 0 :(得分:1)
使用negative and positive前瞻性断言。
2014(?:(?!2014).)*?baloon.*?(?=\n2014)
或强>
2014(?:(?!2014).)*?baloon(?:(?!2014).)*?(?=\n2014)
(?:(?!2014).)*?
会匹配任何字符,但不匹配2014
。这断言在2014年开始和2014
baloon
。