在正则表达式中使用花括号

时间:2017-10-26 07:51:22

标签: regex

我正在尝试将字符串与占位符匹配,例如:

"{test}"

使用正则表达式。到现在为止我试过了,

\b\x{007B}test\x{007D}\b
\b\{test\}\b
\b\\{test\\}\b
\b\\\{test\\\}\b
\b\\\\{test\\\\}\b

这里有一个例子:https://regex101.com/r/40WLuJ/1 正则表达式还应该捕获长字符串,例如"欢迎,{0}"

然而,他们都没有捕获文本。如何在正则表达式中使用花括号并捕获它们?

3 个答案:

答案 0 :(得分:3)

大括号在regexp中有特殊含义,它们用于指定重复计数。你需要逃避它们以便按字面意思匹配它们。

你不应该在大括号旁边使用\b。这只匹配单词和非单词字符之间的边界。 {是一个非单词字符,因此只有当相邻字符是单词字符时才会匹配,例如abc{123}def

你想要的是:

\{test\}

DEMO

答案 1 :(得分:1)

这是你想要做的吗?

{([^\{\}]+)}

请参阅Regex101.com,我正在捕捉括号之间的任何内容,而不只是“测试”。

答案 2 :(得分:1)

您可以简单地使用这个小正则表达式:\{[^}]*\}



var str = 'test {sdsdds} test {ssssss}';
var output = str.replace(/\{[^}]*\}/g, 'Working');
console.log(output);