正则表达式在带有引号的多个分隔符上拆分字符串

时间:2012-03-23 08:56:25

标签: c# .net regex split

我有以下字符串(双引号是字符串的一部分):

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

因此字符串以双引号开头,每个分段由" "分隔,字符串再次以双引号结束。我想把它分成:

abc def ghi
%1
%2

我尝试了以下内容:"(^\")|(\" \")|(\"$)"但这并没有给我预期的结果。

3 个答案:

答案 0 :(得分:3)

不要复杂化。只需使用字符串拆分:

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

(删除多余/空条目)

答案 1 :(得分:2)

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

结果:

http://rubular.com/r/lXbDIpkRRQ

答案 2 :(得分:1)

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