簡體   English   中英

如何獲得模板中使用的所有變量的列表?

[英]How can I get a list of all variables used in a template?

當許多模板使用不同的變量時,我遇到一種情況。 如何獲得一個模板中所有變量名的列表 ,以便在渲染時可以准確傳遞模板所需的信息?

我知道我可以使用正則表達式,但是它並不像看起來那樣容易實現。 變量名周圍的語法可能確實有所不同,而且我沒有時間或資源來查找每種可能的情況。

考慮到以下最小測試用例,正則表達式仍然可以使用:

{{ name }}
{{ name.child }}
{{ name[child] }}
{{ name["child"] }}
{{ name_last["child"] }}
{{ name1["child"] }}
{{ function() }}
{% if variable %}

因此,如果您想將其解析為pcre( 即使問題被標記為我的理解是您想預先解析頁面),您:

  • 尋找開頭{{和結尾}} ,並可選地用空格填充: {{\\s?\\s?}}
  • 尋找上下文短語的“ head”: ([\\w]+)
  • 使用描述屬性選擇器的內容創建第二個非捕獲組: ((?:\\..+)|(?:\\[.+))?

您將得到: {{\\s?([\\w]+)((?:\\..+)|(?:\\[.+)?)\\s?}} ,第一個捕獲組( $1 ),它將在測試樣本中匹配namename_lastname1

現場例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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