c#实现文章添加内链的方法

  

  

<强> 1。有利于读者

  

,,,,,,,我喜欢内链文章的最初动机是让读者在我的博客获得更好的阅读体验,并获得更多的价值。如果我的读者访问了我的一篇文章,发现不仅仅回答他需要的答案,还提供了更多相关内容的信息,让他们能在更多的相关主题去扩展阅读,他们迟早会喜欢并满意我的博客。让读者满意就是我们的目标,读者他们满意了,通常就会再次回访(这让你的博客变得有“粘性”)并和他们的朋友分享。

  

<强> 2。搜索引擎优化(SEO)

  

,,,,,另外一个在你的博客相互链接文章的重要原因就是,搜索引擎在查看博客中链接的时候,既能找到内容,又能有利于建立博客索引和提高博客内容的排名。从其他外部博客建立的链接价值最高,能够提高你在搜索引擎的排名,内链虽然效果没这么好,但是也是对排名有帮助的。

  

<强> 3。提升页面浏览量

  

,,,,,在文章中增加链接能够提高读者访问其他页面内容的机会,这带来许多好处,首先它可以帮助您获得更多的访问者,如果你正在运行某种CPM(按访问人次收费)广告,这是非常受益的。其次大量内链给你的博客浏览者创造了一个博客内容丰富的印象。我发现,当有人在你的博客上看到一个以上的页面时,他们更容易记住它,订阅它,评论它,并成为一个经常和忠实的读者。

  

而这三个好处看起来显得作用不明显,但是当你拥有大量内容的时候,它所能带来的好处就是无法估量的,所以建议你从博客建立的时候就开始构建内链到站内的其他文章,慢慢地这些内链积累下来的好处将会产生非常明显的好处。

  

,当然还有更多好处,请自行百度知,说着说着有点跑偏主题了,我们主要说用c#怎么实现此功能,话不多说,上干货! !

  

<强>第一种办法:(字符串src指文本字符,IList键指要匹配的关键词库集合),

        私人keyAddUrl字符串(字符串src, IList键)   {   Regex reg=new Regex (@”(& # 63; i) (& # 63;: ^ | (& # 63; & lt; ! & lt; \ b(& # 63;在[^ & lt;祝辞]*))在)(& # 63;在[^ & lt;祝辞]*)(& # 63;:& lt; | $) ");   int长度=0;   字符串temp=string.Empty;   返回注册。替换(src,委托(匹配)   {   temp=m.Value;   长度=temp.Length;   for (int i=0;我& lt;keys.Count;我+ +)   {   字符串keyWordName=Regex.Escape(键[我].KeyName);   字符串keyWordUrl=Regex.Escape(键[我].PCUrl);   temp=正则表达式。替换(temp, @”(& # 63;) ^ ((& # 63;: (& # 63;:(& # 63; !”+ keyWordName + @”| & lt;/& # 63; \ b)。) * & lt; a \ b (& # 63;: (& # 63; ! & lt;/& # 63; \ b)) * & lt;/a>) * (& # 63;: (& # 63; !”+ keyWordName +   @”| & lt;/& # 63; \ b)) *) (& # 63; & lt; tag>“+ keyWordName + @“)”,   @ " $ 1 & lt; a href=" " rel=巴獠縩ofollow”+ keyWordUrl + @”“目标=薄捌降取薄氨晏?" " ${标签}”“在${标签}& lt;/a>”);   如果(长度!=temp.Length)   {   keys.Remove(键[我]);   }   长度=temp.Length;   }   返回临时;   });   }      

<强>第二种办法:(这是我自己能想到的办法)

     ///& lt; summary>///一键匹配内链,只替换第一个匹配到的字符///& lt;/summary>///& lt;参数name=澳谌荨痹谝ヅ涞奈谋咀址? lt;/param>///& lt;参数name=袄嘈汀痹谂卸侠嘈褪欠袷恰氨嗉? lt;/param>///& lt; returns> & lt;/returns>   (HttpPost)   [ValidateInput (false)]   公共异步TaskContentReplace(字符串内容,字符串类型)   {   试一试   {   如果(type==氨嗉?   {   内容=WebHelper.ReplaceStrHref(内容);   }   如果(string.IsNullOrEmpty(内容))   {   返回内容(“请输入文本信息”);   }   var=等待bll.GetAllList列表();   如果(列表!=null)   {   #地区第二种办法//第一次   Regex reg=零;   int n=1;   string> Dictionary<字符串;dic=new Dictionary<字符串,string> ();   for (int i=0;我& lt;list.Count;我+ +)   {   如果正则表达式。匹配(内容,列表[我].KeyName) .Success)   {   字符串模式=$ & lt; a href=https://www.yisu.com/眥列表[我].PCUrl} \“目标=\”平等\”在{列表[我].KeyName} & lt;/a>”;   reg=new Regex([我].KeyName列表);=注册内容。替换(内容、模式1);   如果正则表达式。(内容、模式匹配).Success)   {//如果当前关键字链接信息成功,将当前的文本链接信息提取出来添加到字典中(dic),并以唯一标识符代替文本链接信息作为占位符。   reg=new Regex(模式);   n + +;=注册内容。替换(内容,“{”+ n +“}”, 1);   dic。Add (“{”+ n +“}”模式);   }   }   }//将匹配到的文本链接信息的格式   如果(dic)。数!=0)   {   int m=1;   foreach (dic.Keys字符串键)   {   m + +;   如果内容。包含(“{”+ m +“}”))   {   内容=L婊?“{”+ m +“}”, dic[主要]);   }   }   }   # endregion   内容=WebHelper.RemoveStrImgAlt(内容);   返回内容(内容);   }   其他的   {   抛出新的异常(“关键字库中没有数据,检查集合是否抛异常了");   }   }   捕获(异常交货)   {   把交货;   }   }

c#实现文章添加内链的方法