C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼
主要做的是,文章中的關(guān)鍵字標(biāo)簽加上鏈接,網(wǎng)上也有很多解決辦法,自己整理以便后續(xù)在用。
效果如圖:
下面是代碼:
/// <summary>
/// 內(nèi)聯(lián)
/// </summary>
/// <param name="content"></param>
/// <returns></returns>
public string ReplaceTextTag(string content)
{
A a = new A();
string result = "";
if (!string.IsNullOrEmpty(content))
{
//標(biāo)簽
List<Tag> listAll = a .GetTag(); 獲取標(biāo)簽也就是所謂的關(guān)鍵字
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;
});
}
在頁(yè)面調(diào)用此方法即可:<p><%=Tag.ReplaceTextTag(Tag.Contents)%></p><br />
相關(guān)文章
c# 插入數(shù)據(jù)效率測(cè)試(mongodb)
這篇文章主要介紹了c# 插入數(shù)據(jù)效率測(cè)試(mongodb),插入的速度要比Mysql和sqlserver都要快需要的朋友可以參考下2018-03-03
C#使用帶like的sql語(yǔ)句時(shí)防sql注入的方法
這篇文章主要介紹了C#使用帶like的sql語(yǔ)句時(shí)防sql注入的方法,采用了一個(gè)比較簡(jiǎn)單的字符串過(guò)濾方法就可以有效提高sql語(yǔ)句的安全性,防止sql注入,需要的朋友可以參考下2014-09-09
WinForm之BindingSource基礎(chǔ)操作實(shí)例教程
這篇文章主要介紹了WinForm之BindingSource基礎(chǔ)操作,對(duì)BindingSource組建的用法進(jìn)行較為深入的實(shí)例分析,需要的朋友可以參考下2014-08-08
DataTables List互相轉(zhuǎn)換的實(shí)現(xiàn)類示例
這篇文章主要介紹了將DataTable轉(zhuǎn)換為L(zhǎng)ist,將List轉(zhuǎn)換為DataTable的實(shí)現(xiàn)類實(shí)例方法,大家參考使用吧2013-11-11
windows系統(tǒng)下,如何在C#程序中自動(dòng)安裝字體
在Windows系統(tǒng)中,原有自帶的字體樣式有限,有時(shí)候我們的程序會(huì)使用到個(gè)別稀有或系統(tǒng)不自帶的字體。因此我們需要將字體打包到程序中,當(dāng)程序啟動(dòng)時(shí),檢測(cè)系統(tǒng)是否有該字體,如果沒(méi)有則安裝該字體,也可以動(dòng)態(tài)加載字體。2020-11-11
C# 如何實(shí)現(xiàn)一個(gè)基于值相等性比較的字典
這篇文章主要介紹了C# 如何實(shí)現(xiàn)一個(gè)基于值相等性比較的字典,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2021-02-02

