我有一个这样的字符串,因为你可以看到它由空格分隔的属性/值对组成。例如:GRID "GLOBAL"
或COORD 0
GRID "GLOBAL" LABEL "A" DIR "X" COORD 0 GRIDTYPE " "
TEXT值在引号内,但NUMERICAL值不在。
将它分割成如下字符串数组的最佳和最快方法是什么:
[GRID ,"GLOBAL", LABEL, "A", DIR, "X", COORD, 0, GRIDTYPE, " "]
以下解决方案不起作用,因为GRIDTYPE
之后的值中的“”之间也有空格。
var tokens = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
答案 0 :(得分:2)
这对Regex来说是一个好地方:
string[] split = Regex.Matches(inputString, "(\\w+|\".*?\")")
.Cast<Match>()
.Select(m => m.Value)
.ToArray();