2009-04-16 110 views
1

匹配在HTML一双评论我有一个灰鲭鲨的模板,看起来是这样的:使用正则表达式

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

如果我通过了工作人员变量为真这样的话,这些意见应该会出现。我试图通过使用正则表达式看起来像这样来测试:

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

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

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

回答

9

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

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

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

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

非常感谢。我觉得这是愚蠢的。 :-) – 2009-04-16 16:23:20