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

标签 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" 

有什么好主意吗?

最佳答案

使用 word boundary \b :

string pattern = @"@A\b";

参见 regex demo (上下文标签)

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

关于c# - 用 Regex.Replace 替换公式中的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32099222/

相关文章:

c# - 使用 list<T> 中的 take 方法后,Removerange 方法出现意外行为

用于提取键值的 Ruby 正则表达式

要匹配的正则表达式模式,不包括何时.../之间除外

python - 使用带有反向引用匹配的 python 正则表达式

c# - 压缩 Web 服务请求

c# - 我如何知道所有控件何时加载并显示?

c# - 交换技巧 : a=b+(b=a)*0;

c# - 输入字符串不是有效数字 - JSON 反序列化

javascript - 仅替换捕获组 - 正则表达式

javascript - 正则表达式以相同的字符串开头和结尾,而不仅仅是相同的字符