0

いくつかの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)

しかし、それは機能していません。誤検知を起こさない正規表現を考え出すのを手伝ってもらえますか? どんな種類の助けも大歓迎です。前もって感謝します

4

2 に答える 2