我正在尝试将c++
替换为以下字符串中的<b>c++</b>
:
"Select the projects entry and then select VC++ directories. Select show"
我希望它是
"Select the projects entry and then select V<b>C++</b> directories. Select show"
我正在使用此代码:
string cssOld = Regex.Replace(
"Select the projects entry and then select VC++ directories. Select show",
"c++", "<b>${0}</b>", RegexOptions.IgnoreCase);
我收到以下错误:
System.ArgumentException: parsing "c++" - Nested quantifier +.
此代码适用于其他文本(!c ++)。似乎+运算符会导致Regex库抛出异常。
答案 0 :(得分:4)
+
是正则表达式中的特殊字符;它的意思是“匹配前面一个或多个字符”。
要匹配文字+
字符,您需要通过编写\+
(在@""
字面内)来逃避它
要匹配任意文字字符,请使用Regex.Escape
。
答案 1 :(得分:2)
您应该转义regex
中的特殊字符:
string cssOld = Regex.Replace(
"Select the projects entry and then select VC++ directories. Select show ",
@"c\+\+", "${0}", RegexOptions.IgnoreCase);