如何从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
,由于某种原因它将作为数组返回,而不是作为字符串返回。
答案 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)