Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式:在和\n或_Python_Regex - Fatal编程技术网

Python 正则表达式:在和\n或

Python 正则表达式:在和\n或,python,regex,Python,Regex,我不知道我错在哪里 我有一堆页面,需要从中获取标签的内容并将其作为文件名 我的正则表达式 title2 = re.search(r'(<title>)(.+)(</title>)', content) filename_test = str(title2.group(2)+'.txt') 它工作得很好,直到它的标题如下: <title>Klaatu - barada nikto </title> 我试过很多变体,但都不管用 主要的想法是,类似这

我不知道我错在哪里

我有一堆页面,需要从中获取标签的内容并将其作为文件名

我的正则表达式

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)
i、 e.当您到达新线或此标签时停止 但事实并非如此

<(title)>[\S\s]*<\/title>
正如你所发现的。将不匹配换行符-您可以使用[\S\S]来匹配任何不是空格或是空格的字符-基本上是任何字符


实际上,有很多方法可以解决这个问题——看看这个问题,寻找替代方法:

现在你有两个问题。不要用正则表达式解析HTML。在旁注上,如果你愿意,可以使用?s.+。在要匹配的正则表达式中\n则需要使用re.DOTALL标志,该标志可以缩写为re.S.Parse HTML with regex:但它不是是的。如果Python中有re.S标志或内联?S,为什么要使用[\S\S]变通方法?它不是重复的。我不需要包括\n。我觉得很清楚。我需要前后的一切\n或