繁体   English   中英

将“ [[a],{b},{c}]”拆分为字符串数组“ a,b,c”的最佳方法是什么

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM