求大神一段正则

这样一段字符串:

{% 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段一起给匹配了。
求大神帮忙修改正则,感激不尽!!!

阅读 2.2k
1 个回答

懒惰匹配,加个 ?

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

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题