我正在尝试将字符串与占位符匹配,例如:
"{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}"
然而,他们都没有捕获文本。如何在正则表达式中使用花括号并捕获它们?
答案 0 :(得分:3)
大括号在regexp中有特殊含义,它们用于指定重复计数。你需要逃避它们以便按字面意思匹配它们。
你不应该在大括号旁边使用\b
。这只匹配单词和非单词字符之间的边界。 {
是一个非单词字符,因此只有当相邻字符是单词字符时才会匹配,例如abc{123}def
。
你想要的是:
\{test\}
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以简单地使用这个小正则表达式:\{[^}]*\}
var str = 'test {sdsdds} test {ssssss}';
var output = str.replace(/\{[^}]*\}/g, 'Working');
console.log(output);