0

我遇到了关于字符串替换的问题,因为子字符串在某处发生。例如

component1 = 5;
component2 = 6;
component10= 7;

当我想用variable替换 component1 时, component10 将更改为variable0

我应该如何在 C# 中防止这种情况

4

2 回答 2

2

您可以使用非单词边界。所以,您的正则表达式将是

\bcomponent1\b

这会将 component1 作为单独的单词而不是子字符串匹配


你的代码是

string output=Regex.Replace(input,@"\bcomponent1\b");

@是必需的,否则\b将被视为特殊字符,这会给您带来错误,因为\b它不是有效的转义字符或使用\\b

于 2013-06-26T05:52:38.267 回答
0

只需按子字符串长度的降序替换它们即可。

于 2013-06-26T05:53:28.777 回答