据说ReadOnlySpan<char>它非常适合解析,所以我尝试使用它,但遇到了一个我不知道如何处理的用例。
我有一个命令行string,其中参数前缀-和分隔符(空格)被转义(我知道我可以在这里引用它们,但为了这个问题,让我们假设它不是一个选项):
var str = @"foo -bar \-baz\ qux".AsMemory();
标记器应返回以下标记:
foo- 命令名称bar- 参数名称-baz qux- 参数值
案例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>?