我目前正在编写一个快速的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%}作为主体块的结尾