Fra*_*ori 0 .net f# parsing text-parsing
我正在以这种形式解析字符串记录:
description: double/double/double
Run Code Online (Sandbox Code Playgroud)
例如:
item description: 0.4/8/-24.66
Run Code Online (Sandbox Code Playgroud)
每条记录应产生一个对象:
new MyObj("first item", 0.4, 2.4, -24.66)
Run Code Online (Sandbox Code Playgroud)
我可以使用正则表达式和过程方法轻松地做到这一点,但生成的代码容易出错且相当丑陋(至少从功能的角度来看)。
如何以更优雅的方式实现这一点?
好吧,FParsec 很好:
#r "FParsecCS.dll"
#r "FParsec.dll"
open FParsec
let parser : Parser<_,unit> =
sepBy pfloat (pchar '/')
Run Code Online (Sandbox Code Playgroud)
然后run parser "0.4/8/-24.66"返回val it : ParserResult<float list,unit> = Success: [0.4; 8.0; -24.66]。
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |