python 2.7 re.MULTILINE麻烦

时间:2012-03-18 03:43:33

标签: python regex python-2.7 pycurl

我是python的新手,我一直在尝试将我的php正则表达式改为python,但是我遇到了这个多行的问题。在过去的几天里,我一直在互联网上,我似乎无法理解它,如果有人可以帮助那将是伟大的。这是我所做的正则表达式:

mlsTagRegex = re.compile("<td\swidth=\"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的那部分就在那里。

2 个答案:

答案 0 :(得分:2)

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

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

但实际上你应该避免使用正则表达式来解析html,而是使用BeautifulSouplxml

答案 1 :(得分:1)

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