我试图找到两个括号之间的文本并将它们放入数组中。
为此,我使用以下正则表达式:/\{\{([^)]+)\}\}/
。(它匹配两个括号中的文本)。
但是当我有多个匹配时,它就会把匹配做错。
为什么?是因为正则表达式不正确,还是我需要使用一些正则表达式标志?
我希望得到一个由foo
和bar
组成的数组。
const a = 'text:{{ foo }} {{bar}}';
const b = a.match(/\{\{([^)]+)\}\}/);
console.log(b);
我的最终目标是将这段文字text:{{ foo }} {{bar}}
到'text:' + foo + bar
。这意味着我想去掉括号,用引号把不是括号的东西包起来,然后用加号和它们联系。
要做到这一点,我想找到foo
和bar
,然后分裂的结果文本和联系他们。
1条答案
按热度按时间wwwo4jvm1#
我曾经做过一个任务,它需要我使用像你的正则表达式来查找和替换括号之间的文本,我写了一个单行函数来完成这个任务,我把它贴出来作为将来参考的答案
在您的情况下,您可以使用类似这样的内容:
说明:
(?<=\{\{\s*)
:这是一个正向后查找,它Assert匹配前面是括号中的正则表达式,在本例中,我查找{{
,后面是0个或更多空格\w+
:匹配任意单词字符(foo
、bar
)(?=\s*\}\})
:这与第一个组的操作相同,但它Assert匹配是**,**后面是括号之间的匹配,在本例中,我查找0个或更多空格,然后查找}}
g
:是全局修饰符,我添加它是因为我想匹配这个正则表达式的所有示例,并且在第一次匹配后不停止