C#字符串 修改替换问题 代码如下:string str1="1(3,2)|2(2,1)"; 现在想要把括号里面的数字替换,3替换成0,2替换成1,1替换成3; 最终结果是 str1="1(0,1)|2(1,3)";各位大侠帮帮忙!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string str1 = "1(3,2)|2(2,1)"; string str = Regex.Replace(str1, @"(?<=\()\d+(,\d+)*(?=\))", delegate(Match m) { Func<string, string> fun = (t) => { switch (t) { case "1": return "3"; case "2": return "1"; case "3": return "0"; default: return t; } }; return string.Join(",", m.Value.Split(',').Select(tt => fun(tt)).ToArray()); }); Console.WriteLine(str); 你多套几层Replace就行了,不过2楼的方法似乎很犀利哦,可以试试 string str1 = "1(3,2)|2(2,1)";Regex reg = new Regex(@"(?<=\((?:\d+,)*)\d+(?=(?:,\d+)*)");string result = reg.Replace(str1, delegate(Match m) { switch (m.Value) { case "3": return "0"; case "2": return "1"; case "1": return "3"; } return m.Value; });richTextBox2.Text = result; string str1="1(3,2)|2(2,1)";string result =str1.Replace("3,2","0,1").Replace("2,1","1,3"); C# CrystalReport打印时 SetDataSource填充数据慢,无法打印出来 控制窗口程序的隐藏和显示 随机函数问题 c#中如何调用vb写的dll文件?急!急! 如何解释啊 主线程 子线程 与 文件操作 c#程序按键盘没有反映 打了输入法补丁,还是无效的输入法变全角问题. .net里头怎么去掉这个flashpaper的打印功能 什么网站提供大量的C#教程下载啊!!!!! 求更好的思路,大家来看看啊 【求助】C#关于treeview控件的问题
string str = Regex.Replace(str1, @"(?<=\()\d+(,\d+)*(?=\))", delegate(Match m)
{
Func<string, string> fun = (t) =>
{
switch (t)
{
case "1": return "3";
case "2": return "1";
case "3": return "0";
default: return t;
}
};
return string.Join(",", m.Value.Split(',').Select(tt => fun(tt)).ToArray());
});
Console.WriteLine(str);
string str1 = "1(3,2)|2(2,1)";
Regex reg = new Regex(@"(?<=\((?:\d+,)*)\d+(?=(?:,\d+)*)");
string result = reg.Replace(str1, delegate(Match m) { switch (m.Value) { case "3": return "0"; case "2": return "1"; case "1": return "3"; } return m.Value; });
richTextBox2.Text = result;
string result =str1.Replace("3,2","0,1").Replace("2,1","1,3");