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

发布于 2022-09-11 20:27:11 字数 366 浏览 25 评论 0

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'}这种

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

为你鎻心 2022-09-18 20:27:11

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

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

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

放我走吧 2022-09-18 20:27:11

这种配置块并不适合用正则处理,考虑到通用性,你最好还是实现一个简单的解析器,可以参考keepalived自己的代码

https://github.com/acassen/ke...
https://github.com/acassen/ke...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文