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

本文关键字:替换 Regex Replace 变量名 | 更新日期: 2023-09-27 18:08:56

在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" 

有什么好主意吗?

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

使用文字边界'b:

string pattern = @"@A'b";

参见regex demo (Context tab)

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