繁体   English   中英

如何从WHOIS结果中解析电子邮件地址

[英]How to parse email address out of WHOIS results

假设我有一个WHOIS查询,该查询以以下格式返回结果(此问题已简化:)

Domain name:           mydomain.ca
Administrative contact:
    Name:              John Smith
    ... other fields...
    Email:             johnsmith@gmail.com
Technical contact:
    Name:              Jane Doe
    Email:             janedoe@gmail.com
Name servers:
    ns1.mydomain.com
    ns2.mydomain.com

我想要一个正则表达式,它可以给我行政联系人的电子邮件地址(johnsmith@gmail.com),而不是技术联系人的电子邮件地址。 验证电子邮件地址本身的格式并不重要。

我根本不会尝试使用正则表达式。 这是我可能会做的:

  1. 将响应分成几行
  2. 扫描查找“管理联系人:”的行
  3. 扫描具有“电子邮件:”的下一行
  4. 提取该行的第二个单词

您可能需要根据需要微调此过程。

正则表达式为:

"Administrative contact:.*?Email: *([^ \n]*)"

您需要输入“。”。 特殊字符完全匹配任何字符,包括换行符。 不确定如何在C#中做到这一点,但是在python中,匹配(经过测试并可以正常工作)是这样完成的:

match = re.search(r"Administrative contact:.*?Email: *([^ \n]*)", text, re.DOTALL)

您可能还考虑到,这对于大文件来说效率非常低(使用。匹配换行符非常昂贵),因此您也可以考虑Jordan的解决方案。

好吧,您可以只搜索一般的电子邮件字符串,正则表达式为:

([\w-+]+(?:\.[\w-+]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7})

如前所述,注册服务商的页面格式,电子邮件地址等可以有非常不同的格式,这会让您感到痛苦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM