【发布时间】:2020-12-16 11:54:00
【问题描述】:
这是我的输入:
start
@var=somevar1
@var=somevar2
end
我正在使用这个正则表达式
start(?:\s*\n*(?:@var=(.*)\s*)*)\s*\n*end
它的输出应该是
somevar1
somevar2
但它只给了 somevar2。
有什么方法可以获取所有捕获组的出现吗?
【问题讨论】:
-
您可以使用两阶段方法,因此首先获取
start和end之间的文本,然后匹配您的@字符串。 -
您也可以在后视中使用无限量词,即 https://regex101.com/r/9uzpYD/1 得到更多支持
(?<=^start\s[^]*@var=)\S+
标签: javascript regex regex-group regex-greedy