获取网页中指定的字符串信息,可以通过c#中的正则表达式(Regex)实现。下面是详细的攻略流程:
1.获取网页内容
首先需要获取要处理的网页内容,可以使用c#中的http请求实现。具体的代码如下:
using System.Net;
//创建HttpWebRequest对象
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.example.com");
//设置UserAgent
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0";
//获取响应对象
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//读取响应对象的内容
Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
string htmlContent = sr.ReadToEnd();
其中,最关键的是获取要处理的网页内容,上面代码中的 htmlContent
就是获取到的网页内容。
2.使用正则表达式提取指定信息
上一步中,我们通过 http 请求获取了要处理的网页内容。接下来,需要使用正则表达式来获取其中指定的信息。
我们以获取网页中的所有电话号码为例进行说明:
示例 1: 获取网页中的所有电话号码
电话号码的正则表达式 @"1\d{10}"
,它匹配的是以1开头的11位数字,即手机号码的格式。以下是代码实现:
using System.Text.RegularExpressions;
string phoneNumberRegex = @"1\d{10}";
MatchCollection matchCollection = Regex.Matches(htmlContent, phoneNumberRegex);
foreach (Match match in matchCollection)
{
Console.WriteLine(match.Value);
}
其中,MatchCollection
是一个包含多个 Match
对象的类,Regex.Matches()
方法可以将符合指定正则表达式的字符串全部匹配,返回一个 MatchCollection
类型的集合。上述代码中,我们使用了 foreach
循环遍历了所有匹配结果,并将其输出到控制台中。
示例 2: 获取网页中某个元素的文本信息
假设我们需要获取网页中某个元素的文本信息,可以先找到该元素的位置,然后通过正则表达式匹配其中文本的部分。下面以获取 HTML 中 <title>
元素为例进行说明:
using System.Text.RegularExpressions;
// 定义title标签的正则表达式
string titleRegex = @"<\s*title\s*>(.*?)<\s*/\s*title\s*>";
// 根据正则表达式匹配title标签的内容
Match titleresults = Regex.Match(htmlContent, titleRegex);
// 输出匹配结果
if(titleresults.Success)
{
Console.WriteLine("网页标题为:" + titleresults.Groups[1].Value);
}
在上面的示例代码中,我们定义了 <title>
元素在 HTML 中的正则表达式,最终使用正则表达式匹配出 titleresults
,并输出了 <title>
元素中的文本信息。
以上就是使用 c# 获取网页中指定字符串信息的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# 获取网页中指定的字符串信息的实例代码 - Python技术站