我需要从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 <----这很有用!