重写的《给关键字加超链》

本文介绍了一种在文本中查找并替换指定关键字为带有超链接的HTML格式的方法。通过使用字符串分割与遍历技术,实现了对特定C语言教程名称的自动链接化。

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

之前写的用分割方法没看到发问人说测试效率如何,恰好又重写了,不知效率如何,这里封装操作公共变量给初学参考吧。

string 文章 = @"我想学习C语言教程,我想看的是C语言视频教程,<\></><->我喜欢C语言,我想习学<a href='http://www.21shipin.com' target='_blank' title='C语言教程'>C语言教程</a>,其它什么C语言教程,我都不想看。";
            string[] 匹配 = { "C语言视频教程", "C语言教程", "C语言" },/*如果字符串有重复,文字多者排先,区分大小写*/
            超链 = { "a1.html", "a2.html", "a3.html" }, 内容 = new string[0];
            Action 还原 = delegate
            {
                文章 = 内容[0];/*不用传参及返回,直接操作公共变量*/
                foreach (var 文 in Enumerable.Range(1, 内容.Length - 1))
                    文章 += "<" + 内容[文];
            };

            foreach (var 配 in Enumerable.Range(0, 超链.Length))
            {
                string 替 = @"<a href='" + 超链[配] + "' target='_blank' title='" + 匹配[配] + "'>" + 匹配[配] + "</a>";
                if (内容.Length == 0)
                    内容 = 文章.Split("<"[0]);
                else
                {
                    还原();
                    内容 = 文章.Split("<"[0]);/*替换后重新分割数组是动态的*/
                }
                foreach (var 容 in Enumerable.Range(0, 内容.Length))
                    if (!内容[容].Contains(@"href='"))
                        内容[容] = 内容[容].Replace(匹配[配], 替);
            }

            //还原();
            //Console.WriteLine(文章);
            Console.WriteLine(string.Join("<", 内容));

不看封装操作变量的话,处理代码:

            foreach (var 配 in Enumerable.Range(0, 超链.Length))
            {
                string 替 = @"<a href='" + 超链[配] + "' target='_blank' title='" + 匹配[配] + "'>" + 匹配[配] + "</a>";
                内容 = (内容.Length == 0) ? 文章.Split("<"[0]): string.Join("<", 内容).Split("<"[0]);
                foreach (var 容 in Enumerable.Range(0, 内容.Length))
                    if (!内容[容].Contains(@"href='"))
                        内容[容] = 内容[容].Replace(匹配[配], 替);
            }
            Console.WriteLine(string.Join("<", 内容));



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值