提取HTML代码中的文字可以通过正则表达式来实现,C#中可以使用System.Text.RegularExpressions命名空间下的Regex类来操作正则表达式。
下面是提取HTML中文字的C#函数的完整攻略:
步骤一:引用命名空间和类库
using System.Text.RegularExpressions;
步骤二:编写提取HTML中文字的函数
public static string GetHtmlText(string html)
{
//用正则表达式匹配HTML标签,提取文本
string regex = "<[^>]+>";
string text = Regex.Replace(html, regex, "");
//用正则表达式匹配特殊字符,替换为相应的字符
regex = @"&[a-zA-Z]+;";
text = Regex.Replace(text, regex, m =>
{
string value = m.Value;
switch (value)
{
case "<":
return "<";
case ">":
return ">";
case "&":
return "&";
case " ":
return " ";
default:
return value;
}
});
//返回提取后的文本
return text;
}
步骤三:调用函数提取HTML中的文字
string html = "<body><h1>这是一段HTML代码</h1><p>里面包含了很多文字</p></body>";
string text = GetHtmlText(html);
Console.WriteLine(text); //输出为:这是一段HTML代码里面包含了很多文字
示例二:提取HTML页面中的新闻标题
下面是一个示例,假设有一个HTML页面,其中包含了多个新闻标题。我们可以通过正则表达式提取这些新闻标题,代码如下:
string html = "<body><h1>这是一段HTML代码</h1><p>里面包含了下面这些新闻</p><a href='news1.html'>新闻标题1</a><a href='news2.html'>新闻标题2</a><a href='news3.html'>新闻标题3</a></body>";
string regex = "<a[^>]*>(.*?)</a>";
MatchCollection matches = Regex.Matches(html, regex);
foreach (Match match in matches)
{
string title = match.Groups[1].Value;
Console.WriteLine(title);
}
示例中使用了正则表达式<a[^>]*>(.*?)</a>
来匹配所有以<a>
开始、以</a>
结束的HTML标签,从而提取其中的文字内容。MatchCollection
对象保存了所有匹配到的结果,我们可以通过循环遍历来依次提取每个新闻的标题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:提取HTML代码中文字的C#函数 - Python技术站