C# 用于分析字符串的正则表达式

C# 用于分析字符串的正则表达式,c#,regex,C#,Regex,我有这样一个字符串“[[1,2,3,4],sample,test:[abc,acd,12],1000]”,我需要将这个字符串拆分为如下内容 [1,2,3,4] sample test:[abc,acd,12] 1000 如何创建正则表达式来解析此字符串。从输入字符串中删除前导的[和尾随的]符号,并根据括号内不存在的逗号拆分结果字符串 string str = "[[1,2,3,4],sample,test:[abc,acd,12],1000]"; string remove = Reg

我有这样一个字符串“[[1,2,3,4],sample,test:[abc,acd,12],1000]”,我需要将这个字符串拆分为如下内容

[1,2,3,4] 

sample

test:[abc,acd,12]

1000

如何创建正则表达式来解析此字符串。

从输入字符串中删除前导的
[
和尾随的
]
符号,并根据括号内不存在的逗号拆分结果字符串

string str = "[[1,2,3,4],sample,test:[abc,acd,12],1000]";
string remove = Regex.Replace(str, @"]$|^\[", "");

string[] lines = Regex.Split(remove, @",(?![^\[\]]*\])");

foreach (string line in lines) {
Console.WriteLine(line);
}
  Console.ReadLine();
}
输出:

[1,2,3,4]
sample
test:[abc,acd,12]
1000

[^,]*?\[\s\s]*?\][^,]*?\[^,]+

我不理解你的模式。是否要使用
[
]
进行拆分?如果是这样,为什么
1000
应该作为结果?为什么
nsregularexpression
tag?@SonerGönül感谢您的回复,1000也在一个方括号内,“我需要”不是问题。显示您尝试过的内容和失败的内容。字符串的开头和结尾是否真的包含
[]
?这个问题很有趣,但表达得不好。问题是由[and]表示的集合的“递归”结构。