我最近在用模板引擎进行arround实验,而且在正则表达式方面还停留在非常早期的阶段。你知道吗
我的模板引擎的第一步应该是提取所有模板构造。所以我写了以下正则表达式:
# Split all relevant parts apart to merger them later on.
exp_tags = re.compile(r'({[%|{](.*)[}|%]})')
print exp_tags.split(body)
在两个模板构造位于同一行之前,它可以正常工作。然后表达式将它们合并在一起,而不是逐个拆分。你知道吗
示例:
<section>
{{title}}{{text}}
</section>
应导致:
{'<section>', '{{title}}', 'title', '{{text}}', 'text', '</section>'}
但结果是:
{'<section>', '{{title}}{{text}}', 'title}}{{text', '</section>'}
有人知道如何用正则表达式实现我的目标吗?你知道吗
Regular expression quantifiers默认情况下是贪婪的。或者使用
*
的非贪婪变量,在其后面附加?
:或者使用否定字符类来排除结束分隔符。你知道吗
顺便说一句,character class
[a|b]
并不意味着a
或b
,而是a
,|
,b
集合中的一个,因为|
不被解释为交替,而是作为文字字符。你知道吗相关问题 更多 >
编程相关推荐