匹配大括号之间的值

问题描述 投票:0回答:1

我有一个像这样的字符串:

"hello %{name} good %{middle} bye"

我正在尝试找到一种有效的方法来提取大括号之间的值,所以理想情况下我最终会得到一个

["name", "middle"]
数组。

使用

match
我几乎可以到达那里。以下返回:
['%{name}', '%{middle}']

"hello %{name} good %{middle} bye".match(/%{([\w]+)}/g)

我不确定为什么它在返回中包含

%
{
}
字符。

如何调整正则表达式以仅匹配

name
middle

javascript regex match
1个回答
0
投票

您可以使用命名的捕获组。在下面的示例中,我们将其命名为

value
,然后在正则表达式匹配迭代期间提取这些值:

let s = "hello %{name} good %{middle} bye"

let r = [...s.matchAll(/%{(?<value>[\w]+)}/g)].map(i => i.groups.value)

console.log(r)

© www.soinside.com 2019 - 2024. All rights reserved.