【发布时间】:2013-12-29 07:16:49
【问题描述】:
我正在尝试解析一些 dig 输出(是的,我知道 dnspython,但它不满足我的要求)并且在为我的用例找到匹配的正则表达式时遇到了问题。 我试图从 dig 输出中找到所有带有 IN 和 NS 的行,示例输出如下所示:
stackexchange.com. 300 IN NS ns1.serverfault.com.
stackexchange.com. 300 IN NS ns2.serverfault.com.
我试过了:
if 'NS' in line:
我发现了一些相关的行,遗憾的是我对 NSEC DNS 条目有一些误报,例如:
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q5NFFJS5FUB0F2DNA098SBN0O663V NS SOA RRSIG DNSKEY NSEC3PARAM
也出现在我的输出中。
我知道\s 转义应该匹配任何类型的空格和制表符,但是我的正则表达式失败了。我目前有
for line in output:
regex = re.compile(r'IN\sNS\s')
if regex.match(line):
print(line)
但它不起作用。你能帮我想出一个不会产生误报的正则表达式吗? 任何形式的帮助表示赞赏。 提前致谢
【问题讨论】: