【发布时间】:2018-07-16 01:38:41
【问题描述】:
我正在寻找一个正则表达式来实现以下目标:从一个列表中,我只想要在第一次出现小数点后有一个制表符的所有字符串。这些字符串只能位于每行的开头。使用我当前的正则表达式 /^(\S+\.)/gm 我什至得到了包含 2 个或更多小数点的字符串。
这是一些示例代码(空格实际上是制表符):
aaa. 86400
ns1.dns.nic.aaa. 172800 IN A 156.154.144.2
ns1.dns.nic.aaa. 172800 IN AAAA 2610:a1:1071:0:0:0:0:2
abarth. 86400 IN RRSIG NSEC 8 1 86400 20180728050000 20180715040000 41656 .
a0.nic.abarth. 172800 IN A 65.22.24.17
a0.nic.abarth. 172800 IN AAAA 2a01:8840:1a:0:0:0:0:17
ai.
ns2.offshore.ai. 172800 IN A 108.166.113.245
whois.ai. 172800 IN A 209.59.119.1
xn--node.ns.anycast.pch.net. 172800 IN A 204.61.216.88
d.nic.xn--mxtq1m. 172800 IN AAAA 2001:c50:ffff:1:0:0:0:185
d.nic.
xn--ngbc5azd. 172800 IN NS a.nic.xn--ngbc5azd.
我需要的是 aaa.、abarth.、ai. 和 xn--ngbc5azd.,但不是 a0.nic.abarth. 或 whois.ai 或任何其他多于 1 个小数点的字符串。
谢谢!
【问题讨论】:
-
您的示例文本中当然没有制表符。但如果有,
(?m)^[^\s.]*\.(?=\t)或者你可以使用其他一些垃圾