正则表达式相关:正则表达式处理html内容

本文介绍了如何通过正则表达式处理HTML文本,以简化显示和解析过程。提供了实例代码,包括替换特定标签、清理文本等步骤,最终实现了将HTML文本转换为更易读的格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面关于显示html文本用了浏览器控件来处理(http://blog.youkuaiyun.com/yysyangyangyangshan/article/details/7454750),这个不过是为了解决燃眉之急不得已才使用。其实最好还是使用正则表达式处理,也就是自己写一个html文本解释器,当然这个实现起来也是不容易的,首先你得将所有html文本标签罗列出来,然后一一翻译。下面先搞一个简单的例子吧。

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.youkuaiyun.com/detail/yysyangyangyangshan/4354953

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值