使用正则表达式匹配 HTML 中的一对注释
我有一个看起来像这样的 mako 模板:
% if staff:
<!-- begin staff -->
...
<!-- end staff -->
% endif
这样,如果我将 Staff 变量传递为 True,那么这些注释应该会出现。 我尝试使用如下所示的正则表达式来测试这一点:
re.search('<!-- begin staff -->.*<!-- end staff -->', text)
我已验证注释是否出现在 HTML 输出中,但正则表达式不匹配。 我什至尝试将注释 ( 和
) 通过 re.逃脱,但仍然没有运气。 我究竟做错了什么?
或者有更好的方法来运行这个测试吗?
I have a mako template that looks something like this:
% if staff:
<!-- begin staff -->
...
<!-- end staff -->
% endif
That way if I pass the staff variable as being True, those comments should appear. I'm trying to test this by using a regular expression that looks like this:
re.search('<!-- begin staff -->.*<!-- end staff -->', text)
I've verified that the comments appear in the HTML output, but the regular expression doesn't match. I've even tried putting the comments (<!-- begin staff -->
and <!-- end staff -->
) through re.escape, but still no luck. What am I doing wrong?
Or is there a better way to run this test?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
默认情况下
.
不匹配换行符 - 您需要添加re.DOTALL
选项。如果您有多个员工部分,您可能还希望使匹配变得非贪婪:
By default
.
doesn't match newlines - you need to add there.DOTALL
option.If you have more than one staff section, you might also want to make the match ungreedy:
请使用 HTML 解析器,例如 HTMLParser 。 请参阅您能否提供一些示例来说明为什么使用正则表达式解析 XML 和 HTML 很困难? 为什么。
Use an HTML Parser like HTMLParser instead. See Can you provide some examples of why it is hard to parse XML and HTML with a regex? for why.