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

标签 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它以数组形式返回,而不是以字符串形式返回。

最佳答案

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/

相关文章:

javascript - 如何在 JavaScript 中获取字符串与给定替换的所有组合?

javascript - 用返回值初始化对象

正则表达式创建两个捕获组,其中第二个捕获多次

javascript - Math.Sqrt 中的 Math.Pow - 我不明白这段代码

javascript - 为什么将空字符串传递给 Vue 组件 bool Prop 被认为是真实的?

Ruby正则表达式组存储在变量中?

python - 如何使用正则表达式 re.compile 创建捕获组?

php - 忽略正则表达式中的特定标签 - 负向前瞻

javascript - 如何使用流指定类类型参数?

java - 用于捕获特定数字的正则表达式