我正在尝试解析Nagios/Icinga配置,以便可以使用Python对其进行进一步的处理。因为我找不到一个工作库来完成这项工作(pynag似乎根本不起作用),所以我尝试使用regex编写一个简单的Python脚本来实现这一点。在
基本上我想从这个配置文件(它使用制表符进行缩进):
define host {
address 123.123.123.123
passive_checks_enabled 1
}
define service {
service_description Crondaemon
check_command check_nrpe_1arg!check_crondaemon
}
像这样的Python元组:
^{pr2}$这是我的完整脚本,其中包含一个要测试的示例:
^{3}$不幸的是,我不能让完整的解析工作,它总是匹配所有或不匹配。 你能给我一个提示如何修复我的正则表达式,这样我就可以从我的Icinga配置中提取所有的键值对吗?在
re模块不支持重复捕获,因此
只保留最后一个组捕获。在
同样的,我会把它变成那样
^{pr2}$因此,在给定数据结构的情况下,一个可能的解决方案是创建一个正则表达式,该表达式将匹配任一模式:
有了for循环,您可以迭代组
返回:
相关问题 更多 >
编程相关推荐