Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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正则表达式\表达式中的多个表达式_Python - Fatal编程技术网

python正则表达式\表达式中的多个表达式

python正则表达式\表达式中的多个表达式,python,Python,在我的python脚本中,它需要一个表达式,如 "\[.*[ERROR].*\n.*\n.*\n.*/\n.*is for multiple time/[\]]{2}" 请告诉我如何多次服用“\n.”。。。我被困在这个地方了有可用的多行标志,让您可以跨多行进行匹配 关于多行 指定时,模式字符“^”在字符串开头和每行开头(紧跟在每一换行之后)匹配;模式字符“$”在字符串的末尾和每行的末尾(紧跟在每一换行之前)匹配。默认情况下,“^”仅在字符串的开头匹配,而“$”仅在字符串的结尾和字符串末尾的换

在我的python脚本中,它需要一个表达式,如

"\[.*[ERROR].*\n.*\n.*\n.*/\n.*is for multiple time/[\]]{2}"

请告诉我如何多次服用
“\n.”
。。。我被困在这个地方了

有可用的多行标志,让您可以跨多行进行匹配

关于多行

指定时,模式字符“^”在字符串开头和每行开头(紧跟在每一换行之后)匹配;模式字符“$”在字符串的末尾和每行的末尾(紧跟在每一换行之前)匹配。默认情况下,“^”仅在字符串的开头匹配,而“$”仅在字符串的结尾和字符串末尾的换行符(如果有)之前匹配

您还可以访问将有匹配甚至换行符的DOTALL

关于DOTALL

使“.”特殊字符完全匹配任何字符,包括换行符;如果没有此标志,“.”将匹配除换行以外的任何内容

根据您的匹配情况,这两个标志允许您选择如何处理换行符。在您的情况下,您可能希望如下调整您的模式:

text = '\n[ [ERROR]\n\nsome text\nis for multiple time]'
re.findall("\[.*\[ERROR\].*is for multiple time\]", text, re.DOTALL)
# result: ['[ [ERROR]\n\nsome text\nis for multiple time]']

实际上,它给出了错误的输出。。因为第一个“*”本身作为re.DOTALL并给出完整的字符串,但我想要最后一个“*”多次也作为\n