我需要匹配特定的正则表达式语法并将它们拆分,以便我们可以将它们与字典中的等效值匹配。输入:{Expr "string"}{Expr "string"}{Expr}当前代码:value.match(/\{.*\}$/g)期望的输出:[{Expr "string"}][{Expr "string"},{Expr}]
2 回答

达令说
TA贡献1821条经验 获得超6个赞
使用非贪婪量词.*?。并且不要使用$, 因为这会强制它一直匹配到字符串的末尾。
value = '{Expr "string"}{Expr}'
console.log(value.match(/\{.*?\}/g));

扬帆大鱼
TA贡献1799条经验 获得超9个赞
假设您的 JavaScript 版本支持它,一种选择是将输入拆分为以下正则表达式模式:
(?<=\})(?=\{)
这表示在两个术语之间的每个连接处拆分}{。
var input = "{Expr \"string\"}{Expr}";
var parts = input.split(/(?<=\})(?=\{)/);
console.log(parts);
添加回答
举报
0/150
提交
取消