C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼
更新時(shí)間:2013年12月17日 16:01:50 作者:
這篇文章主要介紹了C#自動(dòng)給文章關(guān)鍵字加鏈接實(shí)現(xiàn)代碼,有需要的朋友可以參考一下
主要做的是,文章中的關(guān)鍵字標(biāo)簽加上鏈接,網(wǎng)上也有很多解決辦法,自己整理以便后續(xù)在用。
效果如圖:
下面是代碼:
復(fù)制代碼 代碼如下:
/// <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#動(dòng)態(tài)加載組件后如何在開(kāi)發(fā)環(huán)境中調(diào)試詳解
這篇文章主要給大家介紹了關(guān)于C#動(dòng)態(tài)加載組件后如何在開(kāi)發(fā)環(huán)境中調(diào)試的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

C#實(shí)現(xiàn)關(guān)機(jī)重啟及注銷(xiāo)實(shí)例代碼
這篇文章主要介紹了C#實(shí)現(xiàn)關(guān)機(jī)重啟及注銷(xiāo)實(shí)例代碼,適合新手參考學(xué)習(xí)之用,需要的朋友可以參考下
2014-07-07