我有以下字符串:
foo.a = [10
20
30
40];
foo.b = 'foobar';
我正在使用foo\.[ab]\s*=
regex。
我尝试匹配后面的所有行,直到一行包含某个字符。
第一场比赛应涵盖除最后一行之外的所有内容,因为该行包含等号。我用(负面的)预测尝试了很多东西,但我无法弄明白。
答案 0 :(得分:6)
答案 1 :(得分:0)
foo\.[ab]\s*=[\s\S]*?(?=foo\.[ab]\s*=)
使用积极的前瞻功能,它可以匹配您想要的内容foo.a =
或foo.b =
。
演示:https://regex101.com/r/xV9wL4/2
(foo\.[ab]\s*=)[\s\S]*?(?=(?1))
这与上述相同,但使用捕获组和对该捕获组的引用((?1)
)来简化它