javascript - 求大神一段正则

查看:117
本文介绍了javascript - 求大神一段正则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

这样一段字符串:

{% block body %}
    {% rrc '/home/component.js' 'app'%}
        {
            "notes":[
                {
                    "id": "4e81fc6e-bfb6-419b-93e5-0242fb6f3f6a",
                    "task": "Learn"
                }
            ]
        }
    {% endrrc %}
    
    

    {% rrc '/home/component1.js' 'app1'%}
        {
            "notes":[
                {
                    "id": "4e81fc6e-bfb6-419b-93e5-0242fb6f3f6a",
                    "task": "Learn"
                }
            ]
        }
    {% endrrc %}


{% endblock %}

现在想匹配{% rrc 到 endrrc %}之间的内容。
上面的字符串中有两个,所以希望有两个匹配的结果
我之前写的正则是

/\{%\s*rrc[\s\S]*endrrc\s*%\}/gm

但是这个正则会匹配成这样:

       {% rrc '/home/component.js' 'app'%}
        {
            "notes":[
                {
                    "id": "4e81fc6e-bfb6-419b-93e5-0242fb6f3f6a",
                    "task": "Learn"
                }
            ]
        }
    {% endrrc %}
    
    

    {% rrc '/home/component1.js' 'app1'%}
        {
            "notes":[
                {
                    "id": "4e81fc6e-bfb6-419b-93e5-0242fb6f3f6a",
                    "task": "Learn"
                }
            ]
        }
    {% endrrc %}

等于是把两个rrc段一起给匹配了。
求大神帮忙修改正则,感激不尽!!!

解决方案

懒惰匹配,加个 ?

/\{%\s*rrc[\s\S]*?endrrc\s*%\}/gm;

这篇关于javascript - 求大神一段正则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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