所以我在忽略大小写的情况下替换字符串中所有单词的实例:
public static String ReplaceAll(String Input, String Word)
{
string Pattern = string.Format(@"\b{0}\b", Word);
Regex rgx = new Regex(Pattern, RegexOptions.IgnoreCase);
StringBuilder sb = new StringBuilder();
sb.Append(rgx.Replace(Input, string.Format("<span class='highlight'>{0}</span>", Word)));
return sb.ToString();
}
我还需要更换以保留找到的单词的情况,所以如果我正在寻找&#39;这个&#39;和RegEx发现&#39;这个&#39;它将取代所发现的单词作为&#39;这个&#39;而不是&#39;这个&#39;,我之前已经做过这件事了,但几年前还是用javascript,再次尝试解决这个问题。
答案 0 :(得分:3)
public static string ReplaceAll(string source, string word)
{
string pattern = @"\b" + Regex.Escape(word) + @"\b";
var rx = new Regex(pattern, RegexOptions.IgnoreCase);
return rx.Replace(source, "<span class='highlight'>$0</span>");
}
答案 1 :(得分:0)
以下几乎是您正在寻找使用Regex的内容。唯一的考虑因素是它保留了第一个字符的大小写,所以如果你在中间有一个大写字母,它看起来就不会保留它。