代码之家  ›  专栏  ›  技术社区  ›  user372724

从旧字符串C生成新字符串#

  •  1
  • user372724  · 技术社区  · 14 年前

    输入:

    X(P)~AK,X(MV)~AK
    

    P(curr=AK),MV(curr=AK)
    

    使用C#3.0

    我通过使用字符串函数(拆分,然后追加等)解决了这个问题

    谢谢

    2 回复  |  直到 14 年前
        1
  •  7
  •   Heinzi    14 年前
    var output = Regex.Replace(input, @"X\(([A-Z]+)\)~([A-Z]+)", "$1(curr=$2)");
    

    这将替换所有出现的 X(something1)~something2 something1(curr=something2) . 所有的“某物”都假定为大写字符序列。

        2
  •  1
  •   Zaki    14 年前

    string process(string s)
    {
        string ret = "";
        System.Text.RegularExpressions.Regex r = new Regex(@"X\(([A-Z]+)\)~([^,]+)\,?");
        bool first = true;
        foreach (Match m in r.Matches(s))
        {
            ret += (first ? "" : ",") + m.Groups[1] + "(curr=" + m.Groups[2] + ")";
            first = false;
        }
        return ret;
    }