Skip to main content
 首页 » 编程设计

python之使用正则表达式匹配 HTML 中的一对注释

2025年05月04日23soundcode

我有一个看起来像这样的 mako 模板:

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

这样一来,如果我将 staff 变量传递为 True,则应该会显示这些评论。我正在尝试使用如下所示的正则表达式对此进行测试:

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

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

或者是否有更好的方法来运行此测试?

请您参考如下方法:

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

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

如果你有多个员工部分,你可能还想使匹配变得不贪婪:

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