求一个正则,用python读取keepalived.conf,谢谢

global_defs {
   notification_email {
     acassen
   }
   #notification_email_from Alexandre.Cassen@firewall.loc
   #smtp_server 192.168.200.1
   #smtp_connect_timeout 30
   router_id LVS_DEVEL
}

这种的配置文件,无视掉global_defs怎么把里面的内容用正则匹配成key:value的形式呢?
比如
{'notification_email': '{\n acassen\n }\n, 'router_id': 'LVS_DEVEL'}这种

阅读 2.9k
2 个回答

别想着一个正则就搞定,可以考虑分几步进行处理:

  1. 利用正则表达式,把单行注释、行末注释、空白行过滤掉
  2. 利用大括号配对,把global_defs块摘出来
  3. 利用大括号配对,把notification_email块摘出来
  4. 剩余的内容,用split('n')拆行,用split(' ')拆字段

这样就可以把配置参数解析出来了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题