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
。
我有一个用户输入文本,如 "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
。