Regex嵌套量词+

本文关键字:量词 嵌套 Regex | 更新日期: 2023-09-27 18:28:07

我正在尝试用以下字符串中的<b>c++</b>替换c++

"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库抛出异常。

Regex嵌套量词+

+是正则表达式中的一个特殊字符;意思是"匹配前面的一个或多个字符"。

要匹配文字+字符,您需要通过写入'+(在@""文字内)来对其进行转义

要匹配任意文字字符,请使用Regex.Escape

您应该转义regex:中的特殊字符

string cssOld = Regex.Replace(
    "Select the projects entry and then select VC++ directories. Select show ",
    @"c'+'+", "${0}", RegexOptions.IgnoreCase);