使用特殊字符时出现分析错误

本文关键字:错误 特殊字符 | 更新日期: 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(),它将转义输入字符串,以便正则表达式引擎将其视为文本。