spark(scala) 以空格进行分割,忽略引号内的空格

例如我有一行数据,我想要以空格进行分割数据,但是用双引号和 [ ] 括起来的数据不要用空格分割,请问如何实现,感谢。

class Program
{
static void Main(string[] args)
{
string strMsg = "sdg a[d124 df]sdfsd f\"s adf\"";

        string str1 = getAndRemoveBody("[", "]", ref strMsg,"{0}");
        string str2 = getAndRemoveBody("\"", "\"", ref strMsg,"{1}");

        string[] str = strMsg.Split(" ");

        for (int i = 0; i < str.Length; i++)
        {
            if (str[i].Contains("{0}"))
            {
                str[i] = str[i].Replace("{0}", str1);
            }
            if (str[i].Contains("{1}"))
            {
                str[i] = str[i].Replace("{1}", str2);
            }
            Console.WriteLine(str[i]);
        }

        Console.Read();
    }

    private static string getAndRemoveBody(string strHeadTag, string strTailTag,ref string str,string holder)
    {
        string rt = "";
        int startp = str.IndexOf(strHeadTag);
        int endp = str.IndexOf(strTailTag,startp + 1);
        if (startp < endp && startp >= 0 && endp < str.Length)
        {
            rt = str.Substring(startp + strHeadTag.Length, endp - startp - strHeadTag.Length);
            str = str.Replace(rt, holder);
        }
        return rt;
    }
}