[英]What is the best way to split “[{a},{b},{c}]” into a string array “a,b,c”
将“ [[a],{b},{c}]”拆分为string
数组t
的最佳方法是什么,例如:
t[0] == "a"
t[1] == "b"
t[2] == "c"
考虑输入字符串为逐字,方括号和大括号。
更新:这是我需要拆分的更具体的示例
[{ pk:"4",id:"4",cb_program_id:"2.0000",DataSource:"1",Status:"0",CutoffDate:"15/10/2012 14:05:04" },
{ pk:"3",id:"3",cb_program_id:"2.0000",DataSource:"1",Status:"0",CutoffDate:"15/10/2012 14:05:02" }, ... ]
使用String.Split
摆脱所有不需要的字符。
"[{a},{b},{c}]".Split(new char[] {'[', ']', '{', '}', ','}, StringSplitOptions.RemoveEmptyEntries);
编辑:在OP的编辑之后,@ Daniel的答案更适合于保持子字符串的完整性。
var t = s.Trim('[', ']').Split(',').Select(x => x.Trim('{', '}')).ToArray();
这将首先删除外括号,并用逗号分开,并删除结果开头和结尾的花括号。
要覆盖诸如逗号或花括号之类的嵌入式特殊字符,您需要对其进行转义,因为否则将存在歧义字符串,可以用多种方式将其拆分。
这是工作示例:
string str = "[{a},{b},{c}]";
string[] t = str.Split(new char[] { '[', ']', '{', '}', ',' },
StringSplitOptions.RemoveEmptyEntries)
.ToArray();
输出:
t[0] == "a"
t[1] == "b"
t[2] == "c"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.