我有一个看起来像这样的mako模板:
% if staff:
<!-- begin staff -->
...
<!-- end staff -->
% endif
这样,如果我将staff变量传递为True,那么这些注释应该出现。我试图通过使用如下所示的正则表达式来测试它:
re.search('<!-- begin staff -->.*<!-- end staff -->', text)
我已经确认评论出现在HTML输出中,但正则表达式不匹配。我甚至尝试通过re.escape放置评论(<!-- begin staff -->
和<!-- end staff -->
),但仍然没有运气。我做错了什么?
或者有更好的方法来运行此测试吗?
答案 0 :(得分:9)
默认情况下.
与换行符不匹配 - 您需要添加re.DOTALL
选项。
re.search('<!-- begin staff -->.*<!-- end staff -->', text, re.DOTALL)
如果您有多个职员部分,您可能还希望不匹配地进行匹配:
re.search('<!-- begin staff -->.*?<!-- end staff -->', text, re.DOTALL)
答案 1 :(得分:2)