对所有人:我有这个字符串:
"{1,2,3},{4},{3}"
我想拆分成这样的数组:
{1,2,3}
{4}
{3}
我使用的模式",\{([^)]*)\},"
只是部分工作,并给我一个数组:
{1,2,3}
4
{3}
我这样做:
string[] strs = Regex.Split(string, pattern)
我无法弄清楚我错过了什么,以便第二个值缺少大括号。我一直在撞墙。非常感谢任何帮助。
谢谢!
答案 0 :(得分:5)
答案 1 :(得分:0)
你可以使用拆分并添加你已经推出的削减:
string[] splitted = str.Split("},{");
for(int i = 0; i < splitted.Count ; i++)
{
if(i != 0)
{
Console.WriteLine("{");
}
Console.WriteLine(curr[i]);
if(i != splitted.Count - 1)
{
Console.WriteLine("}");
}
}
答案 2 :(得分:0)
纯正的正则表达式&#34;答案是这样的:
string str = "{1,2,3},{4},{3}";
string[] strs =
Regex.Matches(str, @"({.*?})")
.OfType<Match>()
.Select(m => m.Groups[0].Value)
.ToArray();
更能容忍支撑组之间的不同 - 甚至混合 - 分隔符,例如逗号空间或空格,而不仅仅是逗号。如果您的输入字符串定义明确,那么这不会成为问题,但我更愿意处理可能来自不同来源的输入,并且可能完全符合。