字符串替换没有障碍

时间:2013-06-26 05:50:10

标签: c# regex

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

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

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

我应该如何在C#

中阻止这种情况

2 个答案:

答案 0 :(得分:2)

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

\bcomponent1\b

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


您的代码将是

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

@是必需的,否则\b将被视为特殊字符会导致错误,因为\b不是有效的转义字符或使用\\b

答案 1 :(得分:0)

只需按子串长度的降序替换它们。