2012-03-23 14 views
0

で複数の区切りで文字列を分割I持って次の文字列(二重引用符は文字列の一部である):正規表現は引用符

"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

+0

正確に私が欲しい結果:)感謝します。 –

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

結果:

http://rubular.com/r/lXbDIpkRRQ

+0

これは 'Regex'を使用してあなたの答えです。ニース:] – MoonKnight

+1

これは動作しますが、結果は7文字列の配列です: '[" "、" abc def ghi "、" "、"%1 "、" "、%2"、 "]' '。私は3つの文字列で結果を得たいと思います。 –

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

これは非常に簡単な解決策なので、このようにします。しかし、私は7文字ではなく3文字列しか含まない結果を望んでいます。 –

+0

@RonaldWildenberg - 分割の私のバリエーションを見てください。 – manojlds

関連する問題