c# – 使用find / replace和regex将字符串中的URL替换为关键字
作者:互联网
我有一些关键字(单个单词或几个单词)列表,我想用一些URL替换它们.
喜欢:
>伦敦将被替换为< a
HREF = “HTTP://www.mysite/london-events/london” >伦敦< / A>
>伦敦的足球赛事< a
HREF = “HTTP://www.mysite/footbal-events/london” >
伦敦的足球赛事< / a>
>伦敦足球赛事< a
HREF = “HTTP://www.mysite/footbal-events/london” >
伦敦足球赛事< / a>
>足球赛事伦敦与< a
HREF = “HTTP://www.mysite/footbal-events/london” >
足球赛事伦敦< / a>
>伦敦的派对网站< a
HREF = “HTTP://www.mysite/party-sites/london” >
伦敦的派对网站< / a>
>伦敦派对网站< a
HREF = “HTTP://www.mysite/party-sites/london” >
伦敦派对网站< / a>
我将上面的键/值放在字典中,将关键字放在键中,将URL放在值中并替换为
内容如下:
London is a great city and have
football events in london but party
sites in london are also good. London
football events are great along with
London party sites. Enjoy London!
替换键/值的代码:
private static string ParsedContents(some arguments list here...)
{
Dictionary<string, string> keyWords = GetKeywordsAndEntityWithURL(some arguments list here...);
StringBuilder parsedContents = new StringBuilder(contents);
foreach (var keyWord in keyWords)
{
string replacedString = Regex.Replace(parsedContents.ToString(), "\\b" + keyWord.Key + "\\b", keyWord.Value, RegexOptions.IgnoreCase);
parsedContents.Remove(0, parsedContents.Length);
parsedContents.Append(replacedString);
}
// retrun parsed contents as string.
return parsedContents.ToString();
}
当我运行我的代码时,仅将’London’替换为’< a href =“http://www.mysite/london-events/london”> London< / a>‘而所有其他只是保持不变,但如果我从关键字中删除’伦敦’它工作正常.
你能帮我解决一下我怎么能匹配整个字符串.
要替换的内容和网址是假的:
谢谢
解决方法:
如果您先用URL替换所有较长的字符串,而不是在URL中设置“伦敦”,您可以设置另一个单词,例如“Lxondon”,该怎么办?将包含London的所有字符串替换为相应的URL后,您也可以用其URI替换London.最后,您将在所有文本中将“Lxondon”替换为“伦敦”.
这不是一个非常好的方法,但我认为它会工作.
标签:c,regex,net,replace,c-3-0 来源: https://codeday.me/bug/20190630/1339192.html