【问题标题】:python regex match number greater than 120 [closed]python正则表达式匹配数大于120 [关闭]
【发布时间】:2018-06-06 19:49:07
【问题描述】:

我有数据

67.65 GB
99.29 GB
103.99 GB
5.11 GB
155.66 GB
etc...

我正计划提出一个正则表达式来匹配大于 120 的数字。正则表达式对它有好处还是我应该尝试其他方法?

【问题讨论】:

  • 为什么是正则表达式?正则表达式在算术方面很糟糕。
  • @melpomene 你有什么建议?
  • > 运算符非常擅长比较数字。

标签: python regex python-2.7


【解决方案1】:

不要使用正则表达式。拆分字符串,将 0 索引转换为浮点数,并与 120 进行比较。

【讨论】:

    【解决方案2】:

    实际上你需要做的是拆分字符串,将第一部分转换为浮点数并与 120 进行比较:

    float("67.65 GB".split()[0]) > 120
    

    正则表达式是为模式匹配而设计的,而不是为算术设计的。

    【讨论】:

      【解决方案3】:

      这应该适用于小数点后至少有一位数字:

      ^((12[1-9]|1[3-9]\d|[2-9]\d\d|[1-9]\d\d\d+)\.\d+|120\.\d*[1-9]\d*)$
      

      解释: 第一组,第一轮换:121-129

      第二次交替:130-199

      第三次交替:200-999

      第四次交替:1000+

      每个都后跟一个“。”以及右边的任意位数

      第二组涵盖整数部分正好是 120,后跟一个“.”的情况。和任意数量的数字,其中至少有一个非零。

      【讨论】:

        猜你喜欢
        • 2013-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-08
        • 1970-01-01
        • 2013-01-23
        相关资源
        最近更新 更多