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