我想在字符串粗体中匹配单词。我正在使用与asp.net mvc的Jquery自动完成。我的以下代码仅在字符串包含单个字时才有效。
label = p.Name.Replace(termToSearch.ToLower(),"<b>" + termToSearch.ToLower() + "</b>"),
但是当我有两个匹配的词在随机位置时,它不起作用。
当我搜索Gemini Oil时
我的结果应为id Gemini 向日葵油。
任何想法
答案 0 :(得分:3)
一行正则表达式可以做到这一点:
String term = "Gemini Oil";
String input = "Gemini Sunflower Oil.";
String result = Regex.Replace( input, String.Join("|", term.Split(' ')), @"<b>$&</b>");
Console.Out.WriteLine(result);
<b>Gemini</b> Sunflower <b>Oil</b>.
答案 1 :(得分:0)
您可以在每个空格字符上拆分搜索字词,然后多次运行替换:
var terms = termToSearch.split(' ');
foreach (var term in terms) {
p = p.Name.Replace(term.ToLower(),"<b>" + term.ToLower() + "</b>"),
}
label = p;