从一个例子开始,我有一些像
这样的关键字。Narendra Modi,印度的Modi,演讲,议会
我有一个带有文字的故事
纳伦德拉·莫迪(Narendra Modi)将在印度议会上发表演讲。
现在,我希望我的正则表达式用故事中的超链接替换关键字。
<a>Narendra Modi</a> will give speech in the <a>parliament</a> of <a>India.</a>
为此,我的代码是
var tagArray = bodykeywords.Split(',').ToList();
foreach (var tag in tagArray.OrderBy(a => a.Length))
{
var replaceTag = tag.Replace("(", "");
replaceTag = replaceTag.Replace(")", "");
DataDesc = Regex.Replace(DataDesc, "\"" + replaceTag.Trim() + "\"", " <a href=\"/news?tag=" + replaceTag.Trim() + "\">\"" + replaceTag.Trim() + "\"</a> ");
DataDesc = Regex.Replace(DataDesc, " " + replaceTag.Trim() + ", ", " <a href=\"/news?tag=" + replaceTag.Trim() + "\">" + replaceTag.Trim() + "</a>, ");
DataDesc = Regex.Replace(DataDesc, " " + replaceTag.Trim() + " ", " <a href=\"/news?tag=" + replaceTag.Trim() + "\">" + replaceTag.Trim() + "</a> ");
}
问题是,在给定的示例中,我无法用句号(如印度)来替换单词,而在关键字中却将诸如Narendra Modi,Modi之类的单词与重复单词替换。