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

查看:142
本文介绍了javascript - 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

这篇关于javascript - js正则表达式匹配字符串文件内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆