我目前正在编写一个快速的python脚本,以使所有旧模板适应新的基本模板。
为此,我需要将代码移至{%block body%}内的其他位置。

我已经拿到这个可以匹配我所有的{%load smth%}

r"\{% load [^\{%]+? %\}"


我要匹配的是{%block body%}和{%endblock%}之间的代码
例:

{% block body %}
    <div class="row">
        <div class="span12">
            [...]
        </div>
    </div>
{% endblock %}

最佳答案

不幸的是,除非您使用符号{%endblock body%}或不使用嵌套块,否则无法在此处使用regexp。这是为什么它将失败的示例:

{% block body %}
    <div class="row">
        <div class="span12">
            {% block foo %}
            [...]
            {% endblock %}
        </div>
    </div>
{% endblock %}


正则表达式将捕获嵌套的{%endblock%}作为主体块的结尾

10-05 20:38
查看更多