在ReadOnlySpan<char>
被认为是完美的解析,所以我尝试使用它,我遇到一个用例来了,我不知道如何处理。
我有一个命令行string
,其中参数前缀-
和分隔符(空格)被转义(我知道我可以在这里引用它们,但为了这个问题,我们假设它不是一个选项):
var str = @"foo -bar \-baz\ qux".AsMemory();
分词器应返回以下标记:
foo
- 命令名称
bar
- 参数名称
-baz qux
- 参数值
Cases 1
&2
很简单,因为在这里我可以使用,str.Slice(i, length)
但如何创建3rd
案例并只返回一个ReadOnlySpan<char>
?该Slice
方法不允许我指定多个start/length
范围,这是跳过转义字符所必需的\
。
例子:
str.Slice((10, 4), (15, 3));
哪里(10,4) = "-bar"
和(15,3) = " qux"
有了StringBuilder
你可以跳过几个字符和Append
其他人后。我将如何获得相同的结果ReadOnlySpan<char>
?
慕码人8056858
相关分类