python regular_expression_表达式中的多个表达式

时间:2017-09-05 12:50:16

标签: python

在我的python脚本中,它需要一个像

这样的表达式
"\[.*[ERROR].*\n.*\n.*\n.*/\n.*is for multiple time/[\]]{2}"

请让我知道如何多次使用"\n." ...我被困在这个地方

1 个答案:

答案 0 :(得分:0)

可以使用多行标记,让您在多行中匹配。

https://docs.python.org/2/library/re.html#re.MULTILINE

  

重。的 MULTILINE

     

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

您还可以访问 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]']