Ale*_*kin 1 f# parsing fparsec
我想使用FParsec解析字符串文字.通过"字符串文字"我的意思是开始和结束报价(在我的情况下 - 单引号):
'Please, switch off your mobile phone'
Run Code Online (Sandbox Code Playgroud)
我目前正在做的是以下内容:
let string = between (pstring "'") (pstring "'") (manySatisfy isLetter)
Run Code Online (Sandbox Code Playgroud)
但是在消耗掉第一个字母后停止了.有没有办法让它变得贪婪?
它已经贪婪了; manySatisfy isLetter
解析输入流中的一系列字母.
问题是解析器失败,
或空格,因为它们不是字母.可以使用以下方法修复:
manyChars (noneOf "'")
Run Code Online (Sandbox Code Playgroud)
或更明确地使用:
manySatisfy ((<>) '\'')
Run Code Online (Sandbox Code Playgroud)
代替.