我有一个像这样的字符串,正如您所看到的,它由以空格分隔的属性/值对组成。例如: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);
最佳答案
这对于正则表达式来说是一个好地方:
string[] split = Regex.Matches(inputString, "(\\w+|\".*?\")")
.Cast<Match>()
.Select(m => m.Value)
.ToArray();
关于c# - 如何解析包含引号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41685540/