【问题标题】:How to write the regex expression? [closed]如何编写正则表达式? [关闭]
【发布时间】:2013-01-22 12:08:18
【问题描述】:

输入字符串:A+SUM(A)C+AB-C+SUM(A)+1

我想把A换成0,结果是这样的:0+SUM(A)C+AB-C+SUM(A)+1

或将SUM(A)替换为0,结果如下:A+SUM(A)C+AB-C+0+1

谢谢

【问题讨论】:

  • 到目前为止你得到了什么? Stackoverflow 并不是真正的“为我做这个”设置/
  • 你真的需要正则表达式吗?使用 String.Replace() 可能更容易。
  • 嗯,它不会总是我想象的 A,A 可能是 2 或 2000000 或 23324897 等。
  • @RyanMcDonough ..这只是指出了这个问题的一个缺陷。没有详细信息。
  • 对不起,我改了问题,之前的版本不清楚。

标签: c# .net regex


【解决方案1】:

没有正则表达式(因为正则表达式对此太过分了):

var s = "A+SUM(A)+B-C";

var replaceBeginningA = s.Replace("A+", "0+");
var replaceSumA = s.Replace("SUM(A)", "0");

Console.WriteLine(replaceBeginningA); // 0+SUM(A)+B-C
Console.WriteLine(replaceSumA); // A+0+B-C

正如 cmets 中所指出的,如果预期此输入具有不同的格式,您需要提供更多详细信息。

【讨论】:

    【解决方案2】:

    也许:

    ^A 替换为0

    SUM\(A\) 替换为0

    【讨论】:

      【解决方案3】:

      试一试:

      string replaced = Regex.Replace(input, @"\b(\w+)\+SUM\(\1\)", "0+0");
      

      这将匹配任何形式的东西

      foo+SUM(foo)
      

      并将其替换为0+0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多