谁能给个c#读取一个网址并且用正则匹配的例子?哪里有一下有c#小例子的网站 想写个这样的程序,但是不知道怎么入手。麻烦达人写一个,或者给一下有这种c#小例子的网站。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 // 根据URL提取页面的Title,根据网页的charset自动判断Encoding using System;using System.Net;using System.Text;using System.Text.RegularExpressions;class Program{ // 获取网页的HTML内容,根据网页的charset自动判断Encoding static string GetHtml(string url) { return GetHtml(url, null); } // 获取网页的HTML内容,指定Encoding static string GetHtml(string url, Encoding encoding) { byte[] buf = new WebClient().DownloadData(url); if (encoding != null) return encoding.GetString(buf); string html = Encoding.UTF8.GetString(buf); encoding = GetEncoding(html); if (encoding == null || encoding == Encoding.UTF8) return html; return encoding.GetString(buf); } // 根据网页的HTML内容提取网页的Encoding static Encoding GetEncoding(string html) { string pattern = @"(?i)\bcharset=(?<charset>[-a-zA-Z_0-9]+)"; string charset = Regex.Match(html, pattern).Groups["charset"].Value; try { return Encoding.GetEncoding(charset); } catch (ArgumentException) { return null; } } // 根据网页的HTML内容提取网页的Title static string GetTitle(string html) { string pattern = @"(?si)<title(?:\s+(?:""[^""]*""|'[^']*'|[^""'>])*)?>(?<title>.*?)</title>"; return Regex.Match(html, pattern).Groups["title"].Value.Trim(); } // 打印网页的Encoding和Title static void PrintEncodingAndTitle(string url) { string html = GetHtml(url); Console.WriteLine("[{0}] [{1}]", GetEncoding(html), GetTitle(html)); } // 程序入口 static void Main() { PrintEncodingAndTitle("http://www.msdn.net/"); PrintEncodingAndTitle("http://www.cnblogs.com/"); PrintEncodingAndTitle("http://www.cnblogs.com/skyiv/"); PrintEncodingAndTitle("http://www.csdn.net/"); PrintEncodingAndTitle("http://news.163.com/"); }}/**//* 程序输出:[] [MSDN: Microsoft Developer Network][System.Text.UTF8Encoding] [博客园 - 程序员的网上家园][System.Text.UTF8Encoding] [空间/IV - 博客园][System.Text.UTF8Encoding] [CSDN.NET - 中国最大的IT技术社区,为IT专业技术人员提供最全面的信息传播和服务平台][System.Text.DBCSCodePageEncoding] [新闻中心_网易新闻]*/ // 在局域网内获取本机的外部IP//// “ipconfig.exe /all”在局域网中只能获取内部IP, 无法获取本机的外部IP, Dns.Resolve()也一样。// 经研究, 在局域网中, 仅凭本机的力量是无法获得本机的外部IP的, // 必须登录到外网某个服务器, 那个服务器就知道你的IP, 然后你再取回来。using System;using System.IO;using System.Net;using System.Text.RegularExpressions;class Test{ // 获取网页的HTML内容 static string GetPage(string url) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); try { using (HttpWebResponse res = (HttpWebResponse)req.GetResponse()) { using (StreamReader sr = new StreamReader(res.GetResponseStream())) { return sr.ReadToEnd(); } } } catch (System.Exception e) { return e.Message; } finally { req.Abort(); } } // 通过外部网站得到本机的外部IP static string GetOuterIP() { string patt = @"IP: \[(?<IP>[0-9\.]*)\]"; string url = "http://www.skyiv.com/info"; return Regex.Match(GetPage(url), patt).Groups["IP"].Value; } static void Main() { Console.WriteLine("Inner IP:"); foreach (IPAddress ip in Dns.Resolve(Dns.GetHostName()).AddressList) { Console.WriteLine(ip); } Console.WriteLine(); Console.WriteLine("Outer IP:"); Console.WriteLine(GetOuterIP()); }} c#有php的curl功能吗?怎样模拟登陆提交并且获取cookie呢? http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm 在线等~~编程向数据库指定字段插入有规律值,插入的全都是一样的数据 Page_Load的问题,要刷新两次才显示正确的结果.. 请问怎么提高查询速度? C# 运行时添加Dll引用 问题 为什么socket接收数据不全? c# 连接数据库 树形结构中求任一节点的深度? 已知多边形定点坐标, 求最小外接矩形(顶点) 滚动的字 控件可以删除自己吗???????? filestream.write失效 C/S模式下progressbar的style设置成marquee如何控制开始和停止滚动?
using System.Net;
using System.Text;
using System.Text.RegularExpressions;class Program
{
// 获取网页的HTML内容,根据网页的charset自动判断Encoding
static string GetHtml(string url)
{
return GetHtml(url, null);
} // 获取网页的HTML内容,指定Encoding
static string GetHtml(string url, Encoding encoding)
{
byte[] buf = new WebClient().DownloadData(url);
if (encoding != null) return encoding.GetString(buf);
string html = Encoding.UTF8.GetString(buf);
encoding = GetEncoding(html);
if (encoding == null || encoding == Encoding.UTF8) return html;
return encoding.GetString(buf);
} // 根据网页的HTML内容提取网页的Encoding
static Encoding GetEncoding(string html)
{
string pattern = @"(?i)\bcharset=(?<charset>[-a-zA-Z_0-9]+)";
string charset = Regex.Match(html, pattern).Groups["charset"].Value;
try { return Encoding.GetEncoding(charset); }
catch (ArgumentException) { return null; }
} // 根据网页的HTML内容提取网页的Title
static string GetTitle(string html)
{
string pattern = @"(?si)<title(?:\s+(?:""[^""]*""|'[^']*'|[^""'>])*)?>(?<title>.*?)</title>";
return Regex.Match(html, pattern).Groups["title"].Value.Trim();
} // 打印网页的Encoding和Title
static void PrintEncodingAndTitle(string url)
{
string html = GetHtml(url);
Console.WriteLine("[{0}] [{1}]", GetEncoding(html), GetTitle(html));
} // 程序入口
static void Main()
{
PrintEncodingAndTitle("http://www.msdn.net/");
PrintEncodingAndTitle("http://www.cnblogs.com/");
PrintEncodingAndTitle("http://www.cnblogs.com/skyiv/");
PrintEncodingAndTitle("http://www.csdn.net/");
PrintEncodingAndTitle("http://news.163.com/");
}
}
/**//* 程序输出:
[] [MSDN: Microsoft Developer Network]
[System.Text.UTF8Encoding] [博客园 - 程序员的网上家园]
[System.Text.UTF8Encoding] [空间/IV - 博客园]
[System.Text.UTF8Encoding] [CSDN.NET - 中国最大的IT技术社区,为IT专业技术人员提供最全面的信息传播和服务平台]
[System.Text.DBCSCodePageEncoding] [新闻中心_网易新闻]
*/
//
// “ipconfig.exe /all”在局域网中只能获取内部IP, 无法获取本机的外部IP, Dns.Resolve()也一样。
// 经研究, 在局域网中, 仅凭本机的力量是无法获得本机的外部IP的,
// 必须登录到外网某个服务器, 那个服务器就知道你的IP, 然后你再取回来。using System;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;class Test
{
// 获取网页的HTML内容
static string GetPage(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
try
{
using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
{
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
return sr.ReadToEnd();
}
}
}
catch (System.Exception e)
{
return e.Message;
}
finally
{
req.Abort();
}
} // 通过外部网站得到本机的外部IP
static string GetOuterIP()
{
string patt = @"IP: \[(?<IP>[0-9\.]*)\]";
string url = "http://www.skyiv.com/info";
return Regex.Match(GetPage(url), patt).Groups["IP"].Value;
} static void Main()
{
Console.WriteLine("Inner IP:");
foreach (IPAddress ip in Dns.Resolve(Dns.GetHostName()).AddressList)
{
Console.WriteLine(ip);
}
Console.WriteLine();
Console.WriteLine("Outer IP:");
Console.WriteLine(GetOuterIP());
}
}