欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

C#自动给文章关键字加链接实现代码

时间:2021-05-31 08:26:31|栏目:.NET代码|点击:

主要做的是,文章中的关键字标签加上链接,网上也有很多解决办法,自己整理以便后续在用。

效果如图:

下面是代码:

复制代码 代码如下:

/// <summary>
        /// 内联
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public string ReplaceTextTag(string content)
        {
            A  a = new A();
            string result = "";
            if (!string.IsNullOrEmpty(content))
            {
                //标签
                List<Tag> listAll = a .GetTag(); 获取标签也就是所谓的关键字
                string str1 = content;
                result = keyAddUrl(str1, listAll);
            }
            return result;
        }
        /// <summary>
        /// 加title,加链接
        /// </summary>
        /// <param name="src"></param>
        /// <param name="keys"></param>
        /// <returns></returns>
        private string keyAddUrl(string src, List<TopicTag> keys)
        {
            Regex reg = new Regex(@"(?i)(?:^|(?<!<a\b(?>[^<>]*))>)(?>[^<>]*)(?:<|$)");
            int length = 0;
            string temp = string.Empty;
            return reg.Replace(src, delegate(Match m)
            {
                temp = m.Value;
                length = temp.Length;
                for (int i = keys.Count - 1; i >= 0; i--)
                {
                    temp = Regex.Replace(temp, @"(?is)^((?:(?:(?!" + Regex.Escape(keys[i].Label) + @"|</?a\b).)*<a\b(?:(?!</?a\b).)*</a>)*(?:(?!" + Regex.Escape(keys[i].Label) + @"|</?a\b).)*)(?<tag>" + Regex.Escape(keys[i].Label) + @")",
                        @"$1<a href=""http://cn.greatexportimport.com/topic-" + keys[i].Id + @""" target=""_blank"" title=""${tag}"">${tag}</a>");
                    if (length != temp.Length)
                    {
                        keys.Remove(keys[i]);
                    }
                    length = temp.Length;
                }
                return temp;
            });
        }

在页面调用此方法即可:<p><%=Tag.ReplaceTextTag(Tag.Contents)%></p><br />

上一篇:C#实现的UDP收发请求工具类实例

栏    目:.NET代码

下一篇:ASP.NET中readonly与const的区别详解

本文标题:C#自动给文章关键字加链接实现代码

本文地址:http://www.codeinn.net/misctech/132625.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有