asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
来源:互联网 发布:软件计算工程造价步骤 编辑:程序博客网 时间:2024/05/22 18:55
无论你用什么语言,正则表达式的处理方法都是非常灵活、高效的,尤其是对某些字符串的抓取、过滤方面,更显其优势。
正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的执行效率非常高,运行速度相当快。因此我在项目的开发中,通常把正则表达式作为处理问题的首选方法。
正则表达式的运用,在各种语言里都是相通的,也就是说,当你懂得在PHP中使用正则表达式,那么在任何一种语言中也能轻驾就熟。
这里给出两个asp.net实例。
1、asp.net正则表达式提取网址、标题、图片等
例如,有如下的字符串:
<li><a href="http://www.webkaka.com/blog/archives/how-to-add-links-on-baidu-blog.html" title="怎样在百度空间添加友情链接"><span class="article-date">[14/11]</span>怎样在百度空间添加友情链接</a></li>
现在,需要提取 href 后面的网址,[]内的日期,和 链接的文字。
asp.net的实现方式如下:
string strHTML = "<li><a href=/http://www.webkaka.com/blog/archives/how-to-add-links-on-baidu-blog.html/ title=/"怎样在百度空间添加友情链接/"><span class=/"article-date/">[14/11]</span>怎样在百度空间添加友情链接</a></li>";
string pattern = "http://([^//s]+)/".+?span.+?//[(.+?)//].+?>(.+?)<";
Regex reg = new Regex( pattern, RegexOptions.IgnoreCase );
MatchCollection mc = reg.Matches( strHTML );
if (mc.Count > 0)
{
foreach (Match m in mc)
{
Console.WriteLine( m.Groups[1].Value );
Console.WriteLine( m.Groups[2].Value );
Console.WriteLine( m.Groups[3].Value );
}
}
2、asp.net正则表达式删除HTML代码
public static string NoHTML(string Htmlstring) //替换HTML标记
{
//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([/r/n])[/s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "/"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "/xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "/xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "/xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "/xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(/d+);", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<img[^>]*>;", "", RegexOptions.IgnoreCase);
Htmlstring.Replace("<", "");
Htmlstring.Replace(">", "");
Htmlstring.Replace("/r/n", "");
Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
知识扩展
正则表达式语法
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
这里有一些可能会遇到的正则表达式示例:
Visual Basic Scripting EditionVBScript匹配/^/[ /t]*$/"^/[ /t]*$"匹配一个空白行。//d{2}-/d{5}/"/d{2}-/d{5}"验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。/<(.*)>.*<///1>/"<(.*)>.*<///1>"匹配一个 HTML 标记。下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
- asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
- asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
- asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
- asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
- ASP.NET正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
- asp.net正则表达式提取网页网址、标题、图片,滤所有HTML标签
- asp.net正则表达式提取网址、标题、图片等
- asp.net正则表达式提取网址、标题、图片等
- 过滤所有html标签的属性的正则表达式
- 正则表达式提取html标签
- 正则表达式过滤html标签
- asp.net(C#)正则表达式实例
- asp.net(c#)常用正则表达式实例
- asp.net(c#)常用正则表达式实例
- Asp.Net中过滤所有的Html标签
- 正则表达式提取网页中的网址
- Java过滤HTML标签实例
- Java过滤HTML标签实例
- Linux入门六:磁盘及文件系统管理命令
- 2011.4.28
- C#操作文件(文件读写),这次示例操作txt文件,其他格式一个原理
- 如何增加Exchange Server 2003 Service Pack 2 Standard Edition(标准版)的 18 GB 数据库大小限制
- ZOJ1251
- asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例
- linux不同用户环境变量问题
- 回调函数和钩子函数
- 编译android源码时错误提示:"duplicate entry: xxx.xx"
- axis的soap监控
- 探索C++的秘密之详解extern "C"
- 水晶报表2011-04-29实战总结(子报表)
- 函数参数的传递问题(指针的指针)(转)
- 文档注释