我试图模仿Google显示相关搜索结果的方式。
假设我搜索过“小部件”。
在Google提供的相关术语中,除了搜索字词之外的所有字词都是粗体。
他们这样做的方法是使用<b>
标记附加其他位。
以下是基于搜索字词小部件的一些示例:
术语:蓝色小部件
<b>blue</b> widgets
结果:蓝色小部件
术语:汽车的小部件
widgets <b>for cars</b>
结果:汽车的小部件
术语:对于喜欢小部件的真正男人而言的大小部件
<b>big</b widgets <b>for real men with a love for</b> widgets
结果:对于喜欢小部件的真正男人来说,这是一个很大的小部件
我在Asp.Net c#中工作,没有理由不在代码中完成这个,而不是javascript - 问题是我想不出办法来解决它!
以前有人做过这样的事情可以提供一些建议吗?
谢谢你提前。
您可以使用negative lookahead来否定该单词并获得所有否定,然后使用Regex.Replace
将其替换为封闭的<b>
标记。
public static class Program
{
private static void Main(string[] args)
{
string input = @"
blue widgets
widgets for cars
big widgets for real men";
string pattern = @"(?!widgets\b)\b\w+";
string res = Regex.Replace(input, pattern, (match) =>
{
return $"<b>{match}</b>";
});
Console.WriteLine(res);
}
}
}
输出:
<b>blue</b> widgets
widgets <b>for</b> <b>cars</b>
<b>big</b> widgets <b>for</b> <b>real</b> <b>men</b>