我有一个用户输入文字,如“abc,def,ghi”。我想解析它以获取字符串列表为[“abc”,“def”]。
我试过
let str : Parser<_> = many1Chars (noneOf ",")
let listParser : Parser<_> = many (str);;
但它总是只给我第一项[“abc”]。 “Def”和其他人没有进入结果列表
答案 0 :(得分:3)
您正在解析第一个逗号,但不解析逗号本身。
要解析由其他内容分隔的事物列表,请使用sepBy
:
let comma = pstring ","
let listParser = sepBy str comma
如果您需要解析“至少一个”,请改用sepBy1
。