首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sprache DelimitBy新产品线

Sprache DelimitBy新产品线
EN

Stack Overflow用户
提问于 2015-08-10 03:08:52
回答 1查看 909关注 0票数 2

我把这些解析器作为我语法的一部分:

代码语言:javascript
复制
public static readonly Parser<string> SpaceOrTab =
        Parse.Char(' ').Or(Parse.Char('\t')).Many().Text().Named("SpaceOrTab");

public static readonly Parser<string> NewLine = Parse.LineEnd;
public static readonly Parser<string> NewLineToken = Parse.LineEnd.Contained(SpaceOrTab, SpaceOrTab);
public static readonly Parser<string> NewLineSeparator = NewLineToken.AtLeastOnce().Select(x => string.Join("", x)); 
public static readonly Parser<string> CommaSeparator = Parse.String(",").Token().Text();
public static readonly Parser<string> Separator = NewLineSeparator.Or(CommaSeparator).Named("Separator");

我想要一个分隔符解析器,它可以是“至少一个LineEnd”,也可以是逗号。

这样我就可以解析像这样的东西:

代码语言:javascript
复制
1, 2 , 3 , 4

代码语言:javascript
复制
1
2
3
4

我尝试了很多不同的选项来定义NewLineSeparator,但我显然做错了什么。用逗号分隔很好,换行符解析器似乎没有得到任何匹配。

完整的源代码可以在这里获得,以防有人想看一眼:https://github.com/rogeralsing/SpracheHocon/blob/master/SpracheHocon/Program.cs

EN

回答 1

Stack Overflow用户

发布于 2016-06-24 07:50:37

尝试.DelimitedBy(Parse.Chars("\r\t,"))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31907866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档