fparsec解析字符串

时间:2017-01-13 01:23:08

标签: f# fparsec

我有一个用户输入文字,如“abc,def,ghi”。我想解析它以获取字符串列表为[“abc”,“def”]。

我试过

let str : Parser<_> = many1Chars (noneOf ",")
let listParser : Parser<_> = many (str);;

但它总是只给我第一项[“abc”]。 “Def”和其他人没有进入结果列表

1 个答案:

答案 0 :(得分:3)

您正在解析第一个逗号,但不解析逗号本身。

要解析由其他内容分隔的事物列表,请使用sepBy

let comma = pstring ","
let listParser = sepBy str comma

如果您需要解析“至少一个”,请改用sepBy1