我正在尝试模仿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 -问题是我想不出一种方法它!
任何人以前都做过这样的事情,可以提供一些建议吗?
非常感谢。
答案 0 :(得分:0)
您可以使用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>