正则表达式迭代地匹配多个单词



我有这个测试字符串:

{.aa1 .b3c .f4}

我想提取任意数量的以大括号内的文字点.开头的单词。所以我写了这个JavaScript regex:

/{((?=.w+?)(.w+?)s*?)*}/g

我基本上向前看(?=.w+?),但如果有一个匹配,它没有被捕获,因为向前看是零宽度,所以我捕获(.w+?),然后允许空间s*?的可能性,然后我分组所有这些,并尝试通过与*重复它来迭代。但是它不工作- regex101.com告诉我返回:

MATCH 1
1.  `.f4`
2.  `.f4`

. .而我想要的匹配数组是(.aa1, .b3c.f4)。我怎样才能做到这一点呢?

您可以尝试以下基于正向正向的正则表达式。

string.match(/.w+(?=[^{}]*})/g)

我假定括号必须正确关闭。

演示