我对F#很新,但过去几周都在阅读参考资料.我希望处理用户提供的输入字符串,识别和分离组成元素.例如,对于此输入:
XYZ酒店:入住6晚,每晚220欧元,另加17.5%的税
输出应该类似于元组列表:
[("XYZ",Word); ("酒店:",Word);
("6",数字); ("夜晚",Word);
("at",运营商); ("220",数字);
("EUR",CurrencyCode); ("/",运营商); ("夜",Word);
("加",运营商); ("17.5",数字); ("%", 百分); ("税",Word)]
由于我正在处理用户输入,它可能是任何东西.因此,期望用户遵守语法是不可能的.我想识别数字(可能是整数,浮点数,负数......),度量单位(可选,但可以包括SI或Imperial物理单位,货币代码,例如"night/s"中的计数) ,数学运算符(作为数学符号或包括"at""per","of","discount"等的单词)以及所有其他单词.
我的印象是我应该使用主动模式匹配 - 这是正确的吗? - 但我不确定如何开始.任何指向适当参考材料或类似示例的指针都会很棒.