Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我遇到了关于字符串替换的问题,因为子字符串在某处发生。例如
component1 = 5; component2 = 6; component10= 7;
当我想用variable替换 component1 时, component10 将更改为variable0
我应该如何在 C# 中防止这种情况
您可以使用非单词边界。所以,您的正则表达式将是
\bcomponent1\b
这会将 component1 作为单独的单词而不是子字符串匹配
你的代码是
string output=Regex.Replace(input,@"\bcomponent1\b");
@是必需的,否则\b将被视为特殊字符,这会给您带来错误,因为\b它不是有效的转义字符或使用\\b
@
\b
\\b
只需按子字符串长度的降序替换它们即可。