输入:
X(P)~AK,X(MV)~AK预期输出:
P(curr=AK),MV(curr=AK)使用C#3.0
我通过使用字符串函数(拆分,然后追加等)解决了这个问题。
寻找更多的小众解决方案(如正则表达式)
谢谢
发布于 2010-08-12 16:31:42
var output = Regex.Replace(input, @"X\(([A-Z]+)\)~([A-Z]+)", "$1(curr=$2)");这将用something1(curr=something2)替换所有出现的X(something1)~something2。所有“某物”都被假定为大写字符序列。
发布于 2010-08-12 16:29:59
一种可能的解决方案是使用正则表达式。它不是最干净的,但你可以从这里开始。
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;
}https://stackoverflow.com/questions/3465852
复制相似问题