python 2.7 re.MULTILINE troubles



我是python的新手,我一直试图将我的php正则表达式更改为python,但我遇到了一些多行问题。在过去的几天里,我在互联网上来来回回,我似乎无法理解,如果有人能帮忙,那就太好了。这是我制作的正则表达式:

mlsTagRegex = re.compile("<tdswidth="13%"sclass="TopHeader">(.*?)</td>", re.MULTILINE)
tdTags = mlsTagRegex.findall(output.getvalue())
print tdTags

这是我想让它找到的HTML:

<td width="13%" class="TopHeader">
   <span class="red">I WANT THIS PART</span>
</td>

它只是给了我一个空数组。我很确定我缺少的可能很简单,但正如我所说,我是python的新手,所以有人能帮忙吗?谢谢

p.s.:findall中的输出就是pycurl正在输出的,html的那部分就在那里。

您需要使用re.DOTALL使.与换行符匹配:

mlsTagRegex = re.compile(r'<td width="13%" class="TopHeader">(.*?)</td>', re.DOTALL)

但实际上,您应该避免使用regex来解析html,而是使用BeautifulSoup或lxml。

使用re.DOTALL,因此'.'字符将匹配任何字符,包括换行符。

最新更新