using System;
using System.Linq ;
using System.Collections .Generic ;
using System.Text .RegularExpressions ;
public class Test
{
public static void Main( )
{
var Snippet = "Jack and Jill went up the (hill) to fetch some water" ;
var Highlights = new string[ ] { "Jack" , "(hill)" , "to" } ;
var rx = string.Format ( @"(?<!\w)(?:{0})(?!\w)" ,
string.Join ( "|" , Highlights.Select ( p => Regex.Escape ( p) ) ) ) ;
var res = Regex.Replace ( Snippet, rx,
"<span class=\" text-highlight\" >$&</span>" ,
RegexOptions.IgnoreCase ) ;
Console.WriteLine ( res) ;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgU25pcHBldCA9ICJKYWNrIGFuZCBKaWxsIHdlbnQgdXAgdGhlIChoaWxsKSB0byBmZXRjaCBzb21lIHdhdGVyIjsKCQl2YXIgSGlnaGxpZ2h0cyA9IG5ldyBzdHJpbmdbXSB7ICJKYWNrIiwgIihoaWxsKSIsICJ0byIgfTsKCQl2YXIgcnggPSBzdHJpbmcuRm9ybWF0KEAiKD88IVx3KSg/OnswfSkoPyFcdykiLAoJCQlzdHJpbmcuSm9pbigifCIsIEhpZ2hsaWdodHMuU2VsZWN0KHAgPT4gUmVnZXguRXNjYXBlKHApKSkpOwoJCXZhciByZXMgPSBSZWdleC5SZXBsYWNlKFNuaXBwZXQsIHJ4LAogICAgIAkJCSI8c3BhbiBjbGFzcz1cInRleHQtaGlnaGxpZ2h0XCI+JCY8L3NwYW4+IiwgCiAgICAgCQkJUmVnZXhPcHRpb25zLklnbm9yZUNhc2UpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKHJlcyk7Cgl9Cn0=