-4

我需要从mailto标签中解析电子邮件地址。我正在寻找一种通过 C# 中的 RegEx 执行此操作的方法。

示例输入:

<mailto:abc@xyz.com>

示例输出:

abc@xyz.com
4

3 回答 3

2

一般来说,使用正则表达式进行 HTML 解析是一个非常糟糕的主意。相反,请查看Html Agility Pack。对于您提供的特定输入,您可以使用:

(?<=\<mailto:).*(?=\>)

这是一个代码示例:

var emailTag = "<mailto:abc@xyz.com>";
var emailValue = Regex.Match(emailTag, @"(?<=\<mailto:).*(?=\>)").Value;
Console.WriteLine(emailValue);
于 2013-07-04T13:13:33.267 回答
1

一个简单的正则表达式来删除 mailto 标记中的任何内容将是

<mailto:(.*?)>
于 2013-07-04T13:13:32.073 回答
0

你可以使用:

[\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 <----这很有用!

于 2013-07-04T13:37:46.927 回答