我有一个用户输入文本,如“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
如果您需要解析“至少一个”,请改用 sepBy1
。
关于f# - fparsec 解析字符串序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41625973/