我是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的那部分就在那里。
答案 0 :(得分:2)
您需要使用re.DOTALL
使.
匹配换行符:
mlsTagRegex = re.compile(r'<td width="13%" class="TopHeader">(.*?)</td>', re.DOTALL)
但实际上你应该避免使用正则表达式来解析html,而是使用BeautifulSoup或lxml。
答案 1 :(得分:1)
使用re.DOTALL,所以'。'字符将匹配任何字符,包括换行符。