用Regex.Replace替换公式中的变量名

时间:2015-08-19 15:04:35

标签: c# regex

在c#中,我想使用正则表达式将每个变量@A替换为一个数字,而不用替换其他类似的变量,如@AB

string input = "3*@A+3*@AB/@A";
string value = "5";
string pattern = "@A"; //<- this doesn't work
string result = Regex.Replace(input, pattern, value);
// espected result = "3*5+3*@AB/5" 

有什么好主意吗?

1 个答案:

答案 0 :(得分:1)

使用word boundary \b

string pattern = @"@A\b";

请参阅regex demo上下文标签)

注意字符串文字前面的@:我使用逐字字符串文字来声明正则表达式模式,这样我就不必转义\。否则,它看起来像string pattern = "@A\\b";