zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

c#链接自动代码 实现 文章 关键字
2023-06-13 09:15:14 时间

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

效果如图:

下面是代码:

复制代码代码如下:


///<summary>
       ///内联
       ///</summary>
       ///<paramname="content"></param>
       ///<returns></returns>
       publicstringReplaceTextTag(stringcontent)
       {
           A a=newA();
           stringresult="";
           if(!string.IsNullOrEmpty(content))
           {
               //标签
               List<Tag>listAll=a.GetTag();获取标签也就是所谓的关键字
               stringstr1=content;
               result=keyAddUrl(str1,listAll);
           }
           returnresult;
       }
       ///<summary>
       ///加title,加链接
       ///</summary>
       ///<paramname="src"></param>
       ///<paramname="keys"></param>
       ///<returns></returns>
       privatestringkeyAddUrl(stringsrc,List<TopicTag>keys)
       {
           Regexreg=newRegex(@"(?i)(?:^|(?<!<a\b(?>[^<>]*))>)(?>[^<>]*)(?:<|$)");
           intlength=0;
           stringtemp=string.Empty;
           returnreg.Replace(src,delegate(Matchm)
           {
               temp=m.Value;
               length=temp.Length;
               for(inti=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<ahref=""http://cn.greatexportimport.com/"+keys[i].Id+@"""target=""_blank""title=""${tag}"">${tag}</a>");
                   if(length!=temp.Length)
                   {
                       keys.Remove(keys[i]);
                   }
                   length=temp.Length;
               }
               returntemp;
           });
       }

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