我正在为我们公司的产品编写一个库,它将采用我们的用户已经熟悉的任何类型的架构维度作为从字符串转换为双精度的函数的输入。这是我们希望有效的输入类型列表。
Input
|意义|Output
(英寸以双精度表示)
12.5'
| 12 英尺 6 英寸 |150.0
11"
| 11 英寸 |11.0
3/16"
| 3 十六分之一英寸 |0.1875
英尺和英寸以及英寸和十六分之一之间可以使用也可以不使用空格
11' 11"
| 11 英尺 11 英寸 |143.0
11'11"
| 11 英尺 11 英寸 |143.0
在英尺和英寸之间、英寸和十六分之一之间或两者之间可以使用破折号,也可以不使用破折号
12'-11"
| 12 英尺 11 英寸 |155.0
12' 11 3/16"
| 12 英尺 11 英寸又十六分之三 |155.1875
12' 11-1/2"
| 12 英尺 11 英寸又 8 十六分之一 |155.5
英尺和英寸以及英寸和十六分之一之间可以使用任意数量的空格
12' 11 1/2"
| 12 英尺 11 英寸又 8 十六分之一 |155.5
还可以使用替代的更简单的格式
121103
| 12 英尺 11 英寸又十六分之三 |155.1875
每种格式都可能出现负片
-121103
| 12 英尺 11 英寸又十六分之三 |-155.1875
-11'11"
| 11 英尺 11 英寸 |-143.0
我们目前正在使用一组极其复杂的分支逻辑来尝试确定输入尝试模拟的格式......并且它并不在所有情况下都有效。
是否有一些可能的 LINQ 和正则表达式以及巫术的组合,我们可以使用它来确定如何解析字符串?
另请注意,我们确实希望避免在表单上提供一个简单的组合框来选择输入格式类型。