我有三个字符串:
{{“ErrorMsg:[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]用户'blah'登录失败”}}
{{“ErrorMsg:致命:角色\”foobar \“不存在\ n”}}
- 醇>
“{{\”param1 \“},{\”param2 \“}}”
对于前两种情况,我想获得一个1元素数组,而对于第三种情况,我想获得一个2元素数组(['param1', 'param2']
)。以下表达式适用于第一个字符串:
/[^{"}]+(?=\"})/g
但不适用于第二个字符串,因为内部还有两个"
。我应该如何使它发挥作用?
您可以尝试here
答案 0 :(得分:1)
{{"(。*)"}}返回完整字符串,但不排除{{"和"}}
您需要以最简单的方式提取匹配的组:
str.replace(/{{"(.*)"}}/g, function(m, g) {
console.log(g);
});
答案 1 :(得分:1)
您可以使用此正则表达式:
/{\\?"([^}]+?)(?=\\?"})/g
匹配组将在捕获的组#1中可用,您可以使用循环中调用while
的{{1}}循环进行提取。
RegEx分手:
regex.exec(str)
答案 2 :(得分:0)