簡體   English   中英

正則表達式匹配django塊templatetag

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM