【问题标题】: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 的数字。正则表达式对它有好处还是我应该尝试其他方法?
【问题讨论】:
标签:
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,后跟一个“.”的情况。和任意数量的数字,其中至少有一个非零。