用粗体标签附加短语

问题描述 投票:0回答:1

我试图模仿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 - 问题是我想不出办法来解决它!

以前有人做过这样的事情可以提供一些建议吗?

谢谢你提前。

c# asp.net webforms
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.