使用Regex替换特定的字符串,但忽略基于相邻字符的其他字符串
本文关键字:字符串 于相邻 其他 字符 替换 Regex 使用 | 更新日期: 2023-09-27 18:09:41
我有一个字符串
"sub section 15(1) of main section, this might be a <link href="15(1)">15(1)</link>".
我想使用Regex.Replace
方法将"15(1("替换为新的字符串值"15",但仅限于单独出现的情况。
我正在使用以下模式,但它不起作用。
temp = "sub section 15(1) of main section, this might be a <link href="15(1)">15(1)</link>";
temp = Regex.Replace(temp, @"15(1)", @"15");
输出字符串应为:
"sub section 15 of main section, this might be a <link href="15(1)">15(1)</link>"
任何帮助都将不胜感激。
感谢
在你的帖子中,你说当"15(1("被"单独使用"时,你想替换它。这意味着当它被空白包围时?
这种方法符合您想要的输出:
string pattern = @"(?<=^|'s)15'(1')(?='s|$)";
string result = Regex.Replace(input, pattern, "15");
Console.WriteLine(result);
只有当值出现在行的开头或前面有空白字符,并且后面有空白字符或行的末尾时,此模式才会匹配。
试试这个(注意你需要转义1周围的括号(:
'W15'(1')'W
其中CCD_ 2是非单词字符;或
's15'(1')'s
其中CCD_ 3是空白字符。
这适用于(?<!'S)15'(1')(?!'S)