我需要从mailto标签中解析电子邮件地址。我正在寻找一种通过 C# 中的 RegEx 执行此操作的方法。
示例输入:
<mailto:abc@xyz.com>
示例输出:
abc@xyz.com
一般来说,使用正则表达式进行 HTML 解析是一个非常糟糕的主意。相反,请查看Html Agility Pack。对于您提供的特定输入,您可以使用:
(?<=\<mailto:).*(?=\>)
这是一个代码示例:
var emailTag = "<mailto:abc@xyz.com>";
var emailValue = Regex.Match(emailTag, @"(?<=\<mailto:).*(?=\>)").Value;
Console.WriteLine(emailValue);
一个简单的正则表达式来删除 mailto 标记中的任何内容将是
<mailto:(.*?)>
你可以使用:
[\w\d]+\@[\w\d]+\.com
[\w\d] <----这匹配任何字母或字符。\w匹配任何字母。\d匹配任何数字。
+ <----前一项或多项,在这种情况下为[\w\d]+一个或多个字母或数字
\@ <----只匹配@符号,但它需要用a转义,\因为它是一个特殊字符
[\w\d]+ <----又一样
\. <---- 与 @ 相同的概念,因为.是特殊字符,因此需要转义
在您的示例中:
[\w\d]+=abc
\@=@
[\w\d]+=xyz
\.=。
com=com
如果您想匹配特殊字符以及字母和数字,则只需替换[\w\d]+为[\S]+(确保 s 是大写)。
[\S]+<---匹配任何不是空格的东西。
您将不得不做一些变化来包括 .co.uk 和 .org 等。
http://www.regular-expressions.info/reference.html <----这很有用!