js正则表达式匹配字符串文件内容

今天写正则表达式的时候遇到了一个问题, 我想提取一个文件里面的相同部分的内容:

/*<label>
{
  "你好": {
    "a": "你好a",
    "b": "你好b"
  }
}
<label>*/

$t('你好', {a: '你好a', b: '你好b'})

/*<label>
{
  "测试": {
    "a": "测试a",
    "b": "测试b"
  }
}
<label>*/

我正则表达式是:

    let pattern = /<label>\s*(\{[\s\S]+\})\s*<label>/ig
    let res = str.match(pattern) 

但是这样它会匹配从第一个被注释掉的<label>开始到第二个被注释掉的<label>结束的位置。

那么我应该如何将2个注释符号里面<label>标签的内容分别提取出来呢?

非贪婪匹配

/<label>\s*(\{[\s\S]+?\})\s*<label>/ig
  • h5里canvas可以用样式控制宽高进行缩放也可以用scale函数进行缩放,哪个好?
  • label标签勾选问题
  • 经典继承的一个疑问
  • gulp多层级目录下的文件怎么合并?
  • 如何保護 js/jquery 與 css?
  • 回调函数中不允许弹窗
  • arttemplate嵌套循环怎么写
  • 求助,关于图片裁剪的问题!!!!!!
  • Canvas擦除图片怎么弄?
  • webpack shimming modules 问题
  • 请教一个ajax跨域的问题,求大神帮帮我