簡體   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