2013-04-18 5 views
-3

내 C# 프로그램에서 이와 같은 문자열이 하나 있습니다.C에서 문자열에서 문자열을 분리하는 방법 #

String ss = [["Karoline,Ejlstrupvej 90 90, 4100, Ringsted,07:50:00,55.48148, 11.78890","Karoline,Ejlstrupvej 101, 4100, Ringsted,07:50:00,55.47705, 11.78523","Byskovskolen, Prstevej 19, 4100, Ringsted,55.46842, 11.80975"],["Mads,Sdr. Parkvej 27, 4100, Ringsted,08:00:00,55.44648, 11.78757","Niels,Fluebækvej 204, 4100, Ringsted,08:00:00,55.44295, 11.79137","Heldagsskolen Specialtilbud, Vestervej 27, 4100, Ringsted,55.44050, 11.78115"]]; 

어떻게 이런 값을 분리 할 수 ​​있습니까?

["Karoline,Ejlstrupvej 90 90, 4100, Ringsted,07:50:00,55.48148, 11.78890","Karoline,Ejlstrupvej 101, 4100, Ringsted,07:50:00,55.47705, 11.78523","Byskovskolen, Prstevej 19, 4100, Ringsted,55.46842, 11.80975"] 

    ["Mads,Sdr. Parkvej 27, 4100, Ringsted,08:00:00,55.44648, 11.78757","Niels,Fluebækvej 204, 4100, Ringsted,08:00:00,55.44295, 11.79137","Heldagsskolen Specialtilbud, Vestervej 27, 4100, Ringsted,55.44050, 11.78115"] 

나는

ss.Split('],['); 

을 시도하고 있었다 그러나 이것은 단지 하나의 문자를 걸립니다, 나는 문자열을 분할 할 수 없습니다입니다.

+0

var listOfLists = new JavaScriptSerializer().Deserialize <List<List<string>>>(str); 

그리고 당신은 두 목록에게 당신의 문자열의 포맷 된 버전으로 각각은 3 개 항목을 얻을 것이다는 것을 의미한다. 나는 [ "나"], [ "너]"라는 문자열을 하나 가지고 있고 [ "나"] [ "당신"]으로 구분하고 싶다. –

답변

2

문자열이 json에 가깝기 때문에 JavaScriptSerializer을 사용하십시오. 내가 질문에 그것을 보여

[ 
    [ 
    "Karoline,Ejlstrupvej 90 90, 4100, Ringsted,07:50:00,55.48148, 11.78890", 
    "Karoline,Ejlstrupvej 101, 4100, Ringsted,07:50:00,55.47705, 11.78523", 
    "Byskovskolen, Prstevej 19, 4100, Ringsted,55.46842, 11.80975" 
    ], 
    [ 
    "Mads,Sdr. Parkvej 27, 4100, Ringsted,08:00:00,55.44648, 11.78757", 
    "Niels,Fluebækvej 204, 4100, Ringsted,08:00:00,55.44295, 11.79137", 
    "Heldagsskolen Specialtilbud, Vestervej 27, 4100, Ringsted,55.44050, 11.78115" 
    ] 
] 
+0

@Downvoter 어떤 이유? – I4V

+0

프레임 워크 4.5에 JavaScriptSerializer 클래스가 있습니까? –

+0

@vaibhavshah 물론이 답변을 게시하기 전에 4.5로 테스트했습니다. 'System.Web.Script.Serialization' – I4V

0

당신은 같은 문자열의 배열 string.Split를 사용할 수 있습니다

var things = thing.Split(
    new string[] { "],[" }, 
    StringSplitOptions.RemoveEmptyEntires 
); 

그런 다음 각각의 결과에서 최고의 [ 및 후행 ]를 제거합니다.

문자열을 문자 리터럴로 구형하려고하면 분명히 작동하지 않습니다.

1
var res = ss.Split(new string[]{ "],[" }, StringSplitOptions.None); 
0
var pattern = @"\[\[|\]\]|\],\["; 
Regex r = new Regex(pattern); 
var splitList = r.Split(ss).Where(s => !string.IsNullOrEmpty(s)).ToList(); 
관련 문제