我想在結果集中突出顯示我的搜索字符串。當我的搜索字符串是(Java,PHP)時,我的代碼工作正常。 然而,當我搜索字符串是(JAVA,C++),我得到當代碼執行該線 -解析使用特殊字符時的錯誤
RegExp = new Regex(Search_String.Replace(" ", "|").Trim(), RegexOptions.IgnoreCase);
據我瞭解,正則表達式認爲+
和–
特殊字符,因此,當我搜索字符串是分析錯誤(C++) - 我用如下所述單獨的正則表達式 -
if (Search_String.Contains("++"))
{
RegExp = new Regex(@"C\+{2}");
}
我面臨的問題,現在這兩個正則表達式結合起來,讓自己的代碼工作當搜索字符串(Java和C++)。 任何人都可以提出解決此解析錯誤?
代碼Snippet-
if (Search_String.Contains(","))
{
Search_String = Search_String.Replace(",", " ");
}
// Regular expression SetUp and add the Or operator.
RegExp = new Regex(Search_String.Replace(" ", "|").Trim(), RegexOptions.IgnoreCase);
// Highlight keywords by calling the delegate each time the keyword is found.
return RegExp.Replace(textInfo.ToTitleCase(InputTxt), new MatchEvaluator(ReplaceKeyWords));
public string ReplaceKeyWords(Match m)
{
return "<span class=highlight>" + m.Value + "</span>";
}
[Regex.Escape](http://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex.escape.aspx)是您正在尋找的。 –
當我的搜索字符串是(Java.C++)時,我需要做些什麼修改才能通過下面的代碼行 - //正則表達式SetUp並添加Or運算符。 RegExp = new Regex(Search_String.Replace(「」,「|」)。Trim(),RegexOptions.IgnoreCase); – Sammy