如何从Typescript中的正则表达式执行匹配中访问组?

时间:2018-10-23 17:09:43

标签: regex typescript

尝试时得到Property 'groups' does not exist on type 'RegExpExecArray'

const r = /\w+, (?<foo>\w+)/
const m = r.exec('hello, world')

if (m) {
    const groups = m.groups
}

JavaScript可以选择在正则表达式执行结果上调用.groups。而且我知道输出实际上是一个数组...但是获取特定的索引来获取组似乎有点棘手。是从列表中拉出Typescript中唯一的选择吗?

1 个答案:

答案 0 :(得分:2)

m [1]将带来“世界”。

您可以将组作为m ['groups']访问。

if (m) {
 const groups = m['groups'];
}

因为如果您在m上进行console.log / debug,您可以看到,组是结果中的一个对象。上面提到的是一种更具体的访问对象的方式,如果您知道属性名称。