首页 > 解决方案 > 如何从 Typescript 中的正则表达式 exec 匹配访问组?

问题描述

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正则表达式执行结果的选项。而且我知道输出实际上是一个数组......但是抓住一个特定的索引来获取这些组似乎有点 hacky。从列表中拉出是 Typescript 中的唯一选项吗?

标签: regextypescript

解决方案


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

您可以使用 m['groups'] 访问组。

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

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


推荐阅读