[英]Regex to match django block templatetag
我目前正在編寫一個快速的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%}作為主體塊的結尾
除了嵌套塊的明顯問題之外,這是匹配所有未嵌套塊的正則表達式:
\{% block [^\{%]+? %\}[\s\S]*\{% endblock %\}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.