[英]Match repeating pattern using single group in regex
使用JS正则表达式对象,是否可以使用一个或几个组来匹配重复模式?
例如,将以下内容作为输入:
#222<abc#321cba#123>#111
是否可以使用类似于以下内容的正则表达式来匹配“#321”和“#123”(但不匹配#222或#111,因为它们在/<.*?>/
组之外):
/<.*?(?:(#[0-9]+).*?)>/
(当前仅与第一个实例匹配),如果输入中的匹配数量未知?
您必须遍历内部模式。 首先使用/<(.*?)>/
提取它:
var outerRegex = /<(.*?)>/;
var match = outerRegex.exec(input);
var innerPattern = match[1];
接下来,遍历结果:
var innerRegex = /#\d+/g;
while (match = innerRegex.exec(innerPattern))
{
var result = match[0];
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.