繁体   English   中英

在正则表达式中使用单个组匹配重复模式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM