我无法弄清楚我错在哪里。
我有一堆页面,我需要从中获取标签的内容并将其作为文件名。
我的正则表达式
title2 = re.search(r'(<title>)(.+)(</title>)', content)
filename_test = str(title2.group(2)+'.txt')
它的工作正常,直到这样的标题:
<title>Klaatu - barada nikto
</title>
我尝试了很多变种,但都没有。
主要想法是这样的事情应该有效:
title2 = re.search(r'(<title>)(.+)(\n|(</title>))', content)
即。 “当你来到新行或此标记时停止” 但事实并非如此。
答案 0 :(得分:0)
<(title)>[\S\s]*<\/title>
正如您所发现的那样,.
与新行不匹配 - 您可以使用[\S\s]
匹配“不是空格或空格”的任何字符 - 基本上都是任何字符。
实际上有很多方法可以解决这个问题 - 看看这个替代方案的问题:Regex to match any character including new lines