正则表达式相关:正则表达式处理html内容
2012-06-06 09:47
387 查看
前面关于显示html文本用了浏览器控件来处理(/article/1419490.html),这个不过是为了解决燃眉之急不得已才使用。其实最好还是使用正则表达式处理,也就是自己写一个html文本解释器,当然这个实现起来也是不容易的,首先你得将所有html文本标签罗列出来,然后一一翻译。下面先搞一个简单的例子吧。
结果:
richtextbox中是正则表达式处理效果,webbrowser是原文本显示效果。
源代码:http://download.csdn.net/detail/yysyangyangyangshan/4354953
public static string ConvertToBrowserText(string source) { string result = string.Empty; result = source.Replace("/r", " "); result = result.Replace("/n", " "); result = result.Replace("/t", " "); result = Regex.Replace(result, "(<head>).*(</head>)", string.Empty, RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<( )*script([^>])*>", "<script>", RegexOptions.IgnoreCase); result = Regex.Replace(result, @"(<script>).*(</script>)", string.Empty, RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<( )*style([^>])*>", "<style>", RegexOptions.IgnoreCase); result = Regex.Replace(result, "(<style>).*(</style>)", string.Empty, RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<( )*td([^>])*>", " ", RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<( )*br( )*>", "/r", RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<( )*li( )*>", "/r", RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<( )*tr([^>])*>", "/r/r", RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<( )*p([^>])*>", "/r/r", RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<[^>]*>", string.Empty, RegexOptions.IgnoreCase); result = Regex.Replace(result, @"&", "& ", RegexOptions.IgnoreCase); result = Regex.Replace(result, @" ", " ", RegexOptions.IgnoreCase); result = Regex.Replace(result, @"<", "<", RegexOptions.IgnoreCase); result = Regex.Replace(result, @">", ">", RegexOptions.IgnoreCase); result = Regex.Replace(result, @"&(.{2,6});", string.Empty, RegexOptions.IgnoreCase); result = Regex.Replace(result, @" ( )+", " "); result = Regex.Replace(result, "(/r)( )+(/r)", "/r/r"); result = Regex.Replace(result, @"(/r/r)+", "/r/n"); result = Regex.Replace(result, @"/r/n", System.Environment.NewLine); result = Regex.Replace(result, @"/r", System.Environment.NewLine); result = Regex.Replace(result, @"/r/r", System.Environment.NewLine); result = Regex.Replace(result, @"/s", ""); return result; }
结果:
richtextbox中是正则表达式处理效果,webbrowser是原文本显示效果。
源代码:http://download.csdn.net/detail/yysyangyangyangshan/4354953
相关文章推荐
- 正则表达式相关:正则表达式处理html内容
- 正则表达式相关:正则表达式处理html内容
- 正则表达式相关:C# RichTextBox显示html文本内容
- 正则表达式相关:C# RichTextBox显示html文本内容
- 正则表达式相关:C# RichTextBox显示html文本内容
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
- php array数组的相关处理函数and str字符串处理与正则表达式
- html 正则表达式 相关
- 使用正则表达式处理html标签方案分享
- 正则表达式小脚本(对输入内容进行处理)
- 使用Java正则表达式匹配、替换HTML内容
- 正则表达式相关内容
- 在Idea中利用正则表达式找出匹配行并捕获内容进行处理
- Simple & Funny——用正则表达式处理html文档
- 正则表达式获取HTML标记中的内容(C#)
- 正则表达式--小脚本(对输入内容进行处理)
- Linux学习第二十五篇--正则表达式和文件内容处理
- Linux学习第二十五篇--正则表达式和文件内容处理
- java根据 正则表达式解析html网页内容
- 正则表达式,对html内容匹配分组更改(替换/调换)内容