这个正则表达式有什么问题?

2024-06-26 10:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个测试,以验证链接是否呈现在网页上。在

我不明白我在这个断言测试中做错了什么:

self.assertRegexpMatches( response.content, r'<a href="/questions/?sort=elite" class="on" title="Staff Selected Questions">elite</a>')

我知道标记在页面上是因为我从响应.内容在

我尝试在Python shell中使用正则表达式:

^{pr2}$

因为某些原因他们也不起作用。在

如何创建正则表达式使其正常工作?在


Tags: self网页title链接onresponse断言content
3条回答

你为什么在这里用正则表达式?完全没有理由。只是一个简单的字符串。使用:

self.assertContains(response, '<a href="/questions/?sort=elite" class="on" title="Staff Selected Questions">elite</a>')

regex中的?被解释为^{} quantifier(本部分结束):

<a href="/questions/?...

因此,引擎从不匹配字符串中出现的文本?,而是在该位置匹配可选的/。用反斜杠将其转义如下:

<a href="/questions/\?...

您应该转义“?”,因为这个符号在regex中有特殊的含义。在

>>> re.search(r'<a href="/questions/\?sort=elite" class="on" title="Staff Selected Questions">elite</a>', links)

相关问题 更多 >