fparsec 解析字符串序列

fparsec to parse sequence of string

我有一个用户输入文本,如 "abc,def,ghi"。我想解析它以获得字符串列表 ["abc", "def"].

我试过了

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

但它总是只给我第一项 ["abc"]。 "Def" 和其他人没有出现在结果列表中

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

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

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

如果您需要解析 "at least one",请改用 sepBy1