如何从javascript正则表达式匹配模式中提取子模式

时间:2017-09-17 09:48:05

标签: javascript regex-group

如何从javascript正则表达式匹配模式中提取子模式。

//string: 
var str = textcircle c360 s270 ar2 bl2px_br2px_ml0_mr0;

//matching conditions:
var ang = c.match( /c(\d+)\s+/g ); //matches c360
var startang = c.match( /s(\d+)\s+/g ); //matches s180
var ar = c.match( /ar(\d+)\s+/g );  //matches ["ar2 "]

如果是ang,我只需要提取(\d+)子模式,数字360,而不是c360

如果是startang,我只需要提取(\d+)子模式,数字180,而不是s180

ar的情况下,我需要仅提取(\d+)子模式,数字2,而不是完整ar2,由于某种原因它将作为数组返回,而不是作为字符串返回。

1 个答案:

答案 0 :(得分:1)

regexpattern.exec(string)返回一个数组,其中第0项为整场比赛,第1项为第一组。在这种情况下,您需要第一组



//string: 
var str = 'textcircle c270 s270 ar2 bl2px_br2px_ml0_mr0;'

//matching conditions:
var ang = /c(\d+)\s+/g.exec(str)[1]; //matches 270
var startang = /s(\d+)\s+/g.exec(str)[1]; //matches 270
var ar = /ar(\d+)\s+/g.exec(str)[1]; //matches 2

console.log(ang)
console.log(startang)
console.log(ar)