我遇到了关于字符串替换的问题,因为子字符串在某处变形。例如
component1 = 5;
component2 = 6;
component10= 7;
当我想用变量替换component1时,component10将更改为 variable0
我应该如何在C#
中阻止这种情况答案 0 :(得分:2)
你可以使用非单词边界。所以,你的正则表达式将是
\bcomponent1\b
这会将component1与单独的单词匹配,而不是作为子字符串
您的代码将是
string output=Regex.Replace(input,@"\bcomponent1\b");
@
是必需的,否则\b
将被视为特殊字符会导致错误,因为\b
不是有效的转义字符或使用\\b
答案 1 :(得分:0)
只需按子串长度的降序替换它们。