如何从 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
它以数组形式返回,而不是以字符串形式返回。
最佳答案
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)
关于javascript - 如何从 javascript 正则表达式匹配模式中提取子模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46262693/