如何在 ASP.NET 中获取 Html 中的电子邮件地址
How to take Email Address in Html in ASP.NET
我有一些 Html 像 :
<div class="user">
<span>Email</span>
<span>John_1990@gmail.com</span>
</div>
我如何解析这个 Html 并只获取电子邮件地址?
谢谢
需要使用HTML敏捷Pack.You可以这样添加引用
Install-Package HtmlAgilityPack
这是一个小例子,你可以怎么做。首先,您正在阅读 HTML 并获取所有带有 span 标记的行。之后您将检查 InnerText 是否为电子邮件地址,为此您将使用正则表达式。
static void Main(string[] args)
{
string html = @"<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
<table>
<tr>
<td>A!!</td>
<td>te2</td>
<td>2!!</td>
<td>te43</td>
<td></td>
<td> !!</td>
<td>.!!</td>
<td>te53</td>
<td>te2</td>
<td>texx</td>
</tr>
</table>
<div class=""user"">
<span>Email</span>
<span>John_1990@gmail.com</span>
</div>
</body>
</html>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
List<HtmlNode> spanNodes = doc.DocumentNode.Descendants().Where(x => x.Name == "span").ToList();
List<string> emailAdd = new List<string>();
foreach(HtmlNode node in spanNodes)
{
if (Regex.IsMatch(node.InnerText, @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"))
{
emailAdd.Add(node.InnerText);
}
}
foreach(string email in emailAdd)
{
Console.WriteLine(email);
}
}
我有一些 Html 像 :
<div class="user">
<span>Email</span>
<span>John_1990@gmail.com</span>
</div>
我如何解析这个 Html 并只获取电子邮件地址? 谢谢
需要使用HTML敏捷Pack.You可以这样添加引用
Install-Package HtmlAgilityPack
这是一个小例子,你可以怎么做。首先,您正在阅读 HTML 并获取所有带有 span 标记的行。之后您将检查 InnerText 是否为电子邮件地址,为此您将使用正则表达式。
static void Main(string[] args)
{
string html = @"<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
<table>
<tr>
<td>A!!</td>
<td>te2</td>
<td>2!!</td>
<td>te43</td>
<td></td>
<td> !!</td>
<td>.!!</td>
<td>te53</td>
<td>te2</td>
<td>texx</td>
</tr>
</table>
<div class=""user"">
<span>Email</span>
<span>John_1990@gmail.com</span>
</div>
</body>
</html>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
List<HtmlNode> spanNodes = doc.DocumentNode.Descendants().Where(x => x.Name == "span").ToList();
List<string> emailAdd = new List<string>();
foreach(HtmlNode node in spanNodes)
{
if (Regex.IsMatch(node.InnerText, @"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"))
{
emailAdd.Add(node.InnerText);
}
}
foreach(string email in emailAdd)
{
Console.WriteLine(email);
}
}