我有一个 Mako 模板,看起来像这样:

% if staff:
    <!-- begin staff -->
    ...
    <!-- end staff -->
% endif

这样,如果我将 Staff 变量传递为 True,这些注释就会出现。我正在尝试使用如下所示的正则表达式来测试这一点:

re.search('<!-- begin staff -->.*<!-- end staff -->', text)

我已验证注释是否出现在 HTML 输出中,但正则表达式不匹配。我什至尝试发表评论(<!-- begin staff --><!-- end staff -->)通过re.escape,但仍然没有运气。我究竟做错了什么?

或者有更好的方法来运行这个测试吗?

有帮助吗?

解决方案

默认情况下.不匹配换行符 - 你需要添加re.DOTALL选项

re.search('<!-- begin staff -->.*<!-- end staff -->', text, re.DOTALL)

如果你有一个以上的员工部分,你可能还需要进行匹配ungreedy:

re.search('<!-- begin staff -->.*?<!-- end staff -->', text, re.DOTALL)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top