python正则表达式的匹配。

如果想要匹配这样的html代码

<div class="content">
    xxxxxxxxxxx
</div>

取出其中的xxxxx的内容
我是这样做的

#raw_data为读取的html代码
pattern=re.compile(r'<div class="content">(.*?)</div>$')
items=re.findall(pattern,raw_data)

items为空,我想知道匹配的情况错在了那里

阅读 3.8k
4 个回答

$,把这个去掉

(点符号)匹配的是除了换行符“\n”以外的所有字符
你要进行正则处理的HTML 是有换行的。
所以应该把换行情况也考虑进去(.|\n)

非要用正则的话,可以这样写:

r'<div class="content">\n\s+(\S+)\s+</div>'

注:\s表示匹配空白字符,\S表示匹配非空白字符,而用+表示非贪婪匹配

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进