2012-03-23 61 views
0

我有以下的字符串(双引号是字符串的一部分):正则表达式上的多个隔板分割字符串引号

"abc def ghi" "%1" "%2" 

因此字符串以双引号开始,每个段是由" "分离并该字符串再次以双引号结尾。我想这个分成:

abc def ghi 
%1 
%2 

我试过如下:"(^\")|(\" \")|(\"$)"但是这并没有给我想要的结果。

回答

3

不要把它复杂化。只需使用一个字符串分割:

 string test = "\"abc def ghi\" \"%1\" \"%2\""; 
     var splits = test.Split(new string[]{"\" \"","\""},StringSplitOptions.RemoveEmptyEntries); 
     foreach (var split in splits) 
     { 
      Console.WriteLine(split); 
     } 

(除去多余/空条目)

+0

比我的回答好,喜欢它。 – daryal 2012-03-23 09:13:45

+0

正是我想要的结果:)谢谢。 – 2012-03-23 09:15:11

2
Regex regex = new Regex("\"(.*?)\""); 

结果:

http://rubular.com/r/lXbDIpkRRQ

+0

这是使用'Regex'你的答案。尼斯:]。 – MoonKnight 2012-03-23 09:04:19

+1

这可以工作,但结果是7个字符串的数组:'[“”,“abc def ghi”,“”,“%1”,“”,“%2”,“”]]。我想用3个字符串得到结果。 – 2012-03-23 09:05:21

1
string s = "\"abc def ghi\" \"%1\" \"%2\""; 
string[] splittedStrings = s.Split('"'); 
string a = splittedStrings[1]; 
string b = splittedStrings[3]; 
string c = splittedStrings[5]; 
+1

像这样,因为这是一个非常简单的解决方案。然而,我想要的结果只包含3个字符串,而不是7 ... – 2012-03-23 09:06:20

+0

@RonaldWildenberg - 看看我的分裂的变化。 – manojlds 2012-03-23 09:12:30

相关问题