Python 尝试匹配文本中的正则表达式模式总是返回None

Python 尝试匹配文本中的正则表达式模式总是返回None,python,regex,Python,Regex,我在python中定义了一个正则表达式,我正在尝试使用python提取匹配的文本。但它总是一无所获 这是定义为myConf.conf input { name: "abc", age: "20" } filter { name: "pqr", age: "25" if [message] =~ "TRANSACTION:request" { grok { match => { "message" => "\[%{TIMESTAMP_ISO860

我在python中定义了一个正则表达式,我正在尝试使用python提取匹配的文本。但它总是一无所获

这是定义为
myConf.conf

input {
  name: "abc",
  age: "20"
}

filter {
  name: "pqr",
  age: "25"

if [message] =~ "TRANSACTION:request" {
    grok {
      match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}]  %{LOGLEVEL:level} \{% {DATA:logtype}}
        }

        map['method'] = event.get('method')
        map['request'] = event.get('body')
    }

    drop {}

    aggregate {                
        task_id => "%{tid}"
    }
}

output {
  stdout{}
}
这是我的python代码。它从myConf.conf文件读取数据,并尝试匹配定义的正则表达式

import re

path = "./myConf.conf"
file = open(path, "r+")
text_val = str(file.read())

pattern = re.compile(r"^filter\s*\{[\w\W]+?\n\}$")
result = pattern.search(text_val)
print(result)
正则表达式中没有问题。它很好用


我是一名Java程序员,对python编程一无所知。我做错了什么?

您需要使用多行标志:

pattern = re.compile(r"^filter\s*\{[\w\W]+?\n\}$", re.MULTILINE)

您需要使用多行标志:

pattern = re.compile(r"^filter\s*\{[\w\W]+?\n\}$", re.MULTILINE)