js正则的问题

正则


let str = `\\loves{小猫}{鱼}
  \\loves2{小猫1}{鱼2}
 `;


 let reg2 = new RegExp(`(\\\\([\\s\\S]*?))(\\{)([\\s\\S]*?)(\\})(\\{)([\\s\\S^\\{\\}]*?)(\\})(\\{)([\\s\\S]*?)(\\})`);

 let arr = reg2.exec(str);
        

结果

> arr [
  '\\loves{小猫}{鱼}\n        \\loves2{小猫1}{鱼2}',
  '\\loves',
  'loves',
  '{',
  '小猫',
  '}',
  '{',
  '鱼}\n        \\loves2{小猫1',
  '}',
  '{',
  '鱼2',
  '}',
  index: 0,
  input: '\\loves{小猫}{鱼}\n        \\loves2{小猫1}{鱼2}\n        ',
  groups: undefined
]

本来我是想匹配 这样的 love{}{}{}

我希望括号里面不要再有 { 或者 } 符号。

应该怎么写正则呢

(这个排版我反复编辑了四五次,实在调不好)

阅读 1.5k
1 个回答

没有你想的那么复杂吧

let reg2=/\\\\[^{]*?({[^{\n]*})+/

或者

let reg2=/\\\\[^{]*?{([^{\n]*)}[^{]*?{([^{\n]*)}[^{]*?$/
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏