+-
如何解析,直到找到分隔符或使用Sprache到达输入的末尾?

我正在尝试分析一个字符串,该字符串包含带星号的文本:

var input = "*This is the first part*This is the second part";

我想提取星号和最后一个星号之后的文本之间的任何文本。字符串不以星号或换行符结尾。

我已经用Sprache编写了一个解析器以尝试实现此目的:

Parser<string> thingAfterStarParser = (
    from open in Parse.String("*")
    from rest in Parse.AnyChar.Many().Text()
    select rest
);

var result = thingAfterStarParser.AtLeastOnce().Parse(input);

但是result仅以一个元素结束,而不是两个。我认为是因为rest一直解析到输入的末尾。

我如何告诉解析器解析直到星星输入结束?任何帮助将非常感激!谢谢

0
投票
None