使用Xpath分析电子邮件地址的纯文本

本文关键字:文本 电子邮件地址 Xpath 使用 | 更新日期: 2023-09-27 18:28:09

我有一个类似的纯文本

...
Registrant Email: trinhtuanhung@gmail.com
...
Admin E-mail:ng2tuan@gmail.com

我试着把这个放进htmlagilitypack中,挑选出所有的电子邮件地址,但没有结果返回

 var doc = new HtmlAgilityPack.HtmlDocument();
 doc.LoadHtml(html);
 var emails= doc.DocumentNode.SelectNodes("//*[contains(text(), '@')]");

使用Xpath分析电子邮件地址的纯文本

使用Xpath无法做到这一点,因为您的文本文件只包含纯文本
试试这个:

    private static List<String> ExtractMailsFromFile(string filename)
    {
        string data = File.ReadAllText(filename);
        Regex emailRegex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:'.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?'.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", RegexOptions.IgnoreCase);
        MatchCollection emailMatches = emailRegex.Matches(data);
        return (from Match emailMatch in emailMatches select emailMatch.Value).ToList();
    }