使用特殊字符时出现分析错误
本文关键字:错误 特殊字符 | 更新日期: 2023-09-27 18:24:52
我想在结果集中突出显示我的搜索字符串。当我的搜索字符串是(Java,PHP)时,我的代码运行良好。然而,当我的搜索字符串是(Java,C++)时,当代码执行这一行时,我会得到解析错误——
RegExp = new Regex(Search_String.Replace(" ", "|").Trim(), RegexOptions.IgnoreCase);
我知道Regex将+
和–
视为特殊字符,因此当我的搜索字符串为(C++)时——我使用了一个单独的正则表达式,如下所述——
if (Search_String.Contains("++"))
{
RegExp = new Regex(@"C'+{2}");
}
我现在面临着将这两种Regex结合起来的问题,这样当搜索字符串为(Java,C++)时,我的代码就可以工作了。有人能建议解决这个解析错误吗?
代码段–
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()
,它将转义输入字符串,以便正则表达式引擎将其视为文本。