2016-09-30 62 views
1

我不知道如何分割字符串:多重分割字符串在C#中

的字符串是'Allocation: Randomized, Endpoint Classification: Safety Study, Intervention Model: Single Group Assignment, Masking: Double Blind (Subject, Caregiver, Investigator, Outcomes Assessor), Primary Purpose: Treatment'

目前使用的分裂语法:

string.Split(','); 

结果:

[0]: Allocation: Randomized 
[1]: Endpoint Classification: Safety Study 
[2]: Intervention Model: Single Group Assignment 
[3]: Masking: Double Blind (Subject, 
[4]: Caregiver, 
[5]: Investigator, 
[6]: Outcomes Assessor) 
[7]: Primary Purpose: Treatment 

但我想要的结果是:

[0]: Allocation: Randomized 
[1]: Endpoint Classification: Safety Study 
[2]: Intervention Model: Single Group Assignment 
[3]: Masking: Double Blind (Subject, Caregiver, Investigator, Outcomes Assessor) 
[4]: Primary Purpose: Treatment 

有人能帮我纠正我的字符串拆分语法吗?

+0

做任何给定的答案适合你吗? – fubo

回答

4

我会用RegEx在这种情况下

string input = "Allocation: Randomized, Endpoint Classification: Safety Study, Intervention Model: Single Group Assignment, Masking: Double Blind (Subject, Caregiver, Investigator, Outcomes Assessor), Primary Purpose: Treatment"; 
string[] result = System.Text.RegularExpressions.Regex.Split(input, @",(?![^(]*\))"); 

注:嵌套的括号

1

,而不是分裂( ' ')不工作,请尝试使用斯普利特(':'),然后运行通过你的数组并将每两个成员加在一起。之后,您需要在每个字符串上使用TrimEnd(',')或TrimStart(',')以按照您的要求格式化。

也许像这样一起为加入:

for each (int i in Array) 
{ 
[i] = [i]+[i+1]; 
i++; 
} 
0

你可以在()先被分割,所以你会得到不应该被拆分,可以进一步分裂((之前)零件和配件((之后,)之前)。
然后,您会将所有创建的块拆分为,,但正如您所了解的每个“括号”块一样,您可以根据需要重新连接小块。

对不起,没有提供样品,是太多的工作在手机上打字。