C# 如何解析包含引号的字符串

C# 如何解析包含引号的字符串,c#,arrays,string,parsing,split,C#,Arrays,String,Parsing,Split,我有一个这样的字符串,正如您所看到的,它由由空格分隔的属性/值对组成。例如:GRID“GLOBAL”或COORD 0 GRID "GLOBAL" LABEL "A" DIR "X" COORD 0 GRIDTYPE " " 文本值在引号内,但数字值不在引号内 将其拆分为如下字符串数组的最佳且最快的方法是什么: [GRID ,"GLOBAL", LABEL, "A", DIR, "X", COORD, 0, GRIDTYPE, " "] 下面的解决方案不起作用,因为GRID

我有一个这样的字符串,正如您所看到的,它由由空格分隔的属性/值对组成。例如:
GRID“GLOBAL”
COORD 0

  GRID "GLOBAL"  LABEL "A"  DIR "X"  COORD 0  GRIDTYPE  " "
文本值在引号内,但数字值不在引号内

将其拆分为如下字符串数组的最佳且最快的方法是什么:

  [GRID ,"GLOBAL", LABEL, "A", DIR, "X", COORD, 0, GRIDTYPE, " "] 
下面的解决方案不起作用,因为
GRIDTYPE
之后的值中的“”之间也有空格

var tokens = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

这将是Regex的好地方:

string[] split = Regex.Matches(inputString, "(\\w+|\".*?\")")
                      .Cast<Match>()
                      .Select(m => m.Value)
                      .ToArray();
string[]split=Regex.Matches(inputString,“(\\w+\\”*?\”)
.Cast()
.选择(m=>m.Value)
.ToArray();