提取正则表达式匹配的部分

241
我想要一个正则表达式来从HTML页面中提取标题。目前我有这个:
title = re.search('<title>.*</title>', html, re.IGNORECASE).group()
if title:
    title = title.replace('<title>', '').replace('</title>', '') 

有没有一个正则表达式可以只提取<title>标签中的内容,而不用删除标签本身?

10
哇,我简直不敢相信这么多的回复都要求解析整个 HTML 页面才能提取一个简单的标题。真是杀鸡焉用牛刀! - hoju
5
问题标题已经说得很清楚了 - 给出的示例碰巧是HTML,但这个一般问题是普适的。 - Phil
11个回答

1
有没有特别的原因,为什么没有人建议使用前瞻和后顾?我来这里尝试做完全相同的事情,(?<=<title>).+(?=<\/title>) 很好用。它只匹配括号之间的内容,所以你不必做整个组的事情。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接