使用表达式转换标称值的最佳方法

糟糕糟糕 成员职位:2贡献我
2021年7月编辑 帮助
我已经用英制测量单位设置了一组数据,这些值太模糊了,我正试图找出一种方法来统一它们,并将它们转换为我可以使用它们的方式
值的示例:
  1. 1/ 8,1 / 16,19 / 17,13 / 3,1.1 /8
  2. 0.139, 0.07, 3.37, 0.250, 0.14
  3. 3-1/ 8,1 -1/ 26,1 -18/ 23,10 -1/2
  4. 20 3 10
  5. 0.30 - -0.40
  6. 0.094 + / - -0.004
  7. 1.046 (1-1/16)
  8. 有些有文字和号码
我读过正则表达式,但我如何定义正则表达式,并在快速小调中使用它来划分这些复杂的值。
如果有其他方法可以解决这个问题,我将非常感谢您的建议。

最佳答案

  • kaymankayman 成员职位:662独角兽
    解决方案接受
    不太了解英寸是如何工作的,但由于您的值似乎由逗号分隔,您可以使用它将字符串拆分为单个值。如果你想保持英寸,你可以通过将'-'替换为'来规范化这些。’或者反过来。

    如果你需要转换成毫米,你可以生成一个正则表达式来转换完整的英寸和“子英寸”。不知道它到底怎么叫…

    举个例子,如果你有3-1/16,并且有一个像这样的正则表达式:

    ^ (d +)?[.-]?(?:(\ d +) / (\ d +)) ?

    你可以这样读“你以可选的全数字开头,后跟一个可选的连字符或点,然后你有可选的分隔符。

    第一个基团是3,第二个是1,第三个是16,所以你可以这样写

    ($1 * 25.4) +(($ 25.4 /$ 2)/$3)转换成mm。顺便说一下,我不知道我的转换是否正确,但你明白了。

    现在,如果你有一个完整的匹配,在像2/16(所以没有完整的数字)或20(所以没有除数)这样的部分情况下,这意味着你的替换需要调整
    登录注册置评。