c# - 正则表达式组字符串替换问题

标签 c# regex

目标字符串为“A + A_RT + B*A+AA”。我想用 B 替换 A,用 A 替换 B。但我不想将 A_RT 替换为 B_RT 或将 AA 替换为 BB。预期结果为“B + A_RT + A*B+AA”。我怎样才能在 C# 中做到这一点?谢谢。

目前我使用以下代码,但它将把 A_RT 替换为 B_RT...

IDictionary<string, string> map = new Dictionary<string, string>()
                                  {
                                      {"A","B"},
                                      {"B","A"},
                                  };

string str = "A + A_RT + B*A+AA";
var regex = new Regex(String.Join("|", map.Keys));
var newStr = regex.Replace(str, m => map[m.Value]);

最佳答案

我将正则表达式更改为 var regex = new Regex(@"\bA\b|\bB\b"),然后它就可以工作了。

关于c# - 正则表达式组字符串替换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12851433/

相关文章:

c# - 连续负数算法

c# - 无法 nunit 测试我的 log4net 包装类

Javascript 替换正则表达式通配符

c# - 内部收件人的 Exchange 2010/2013 TransportAgent 内容转换

c# - FrameworkPropertyMetadataOptions.AffectsRender 的 .NET 4.5 Windows 应用商店应用程序等效项是什么?

c# - 基于正则表达式的数值表达式求解器

python - re.split - 将匹配的字符串保留在适当的位置?

python - 使用 Python + Beautiful Soup 抓取任何包含 5 个数字的字符串

MySql - 正则表达式提取数字的可变序列

c# - 获取数组的平均值