正则表达式:在带小数的范围之间找到一个数字

时间:2013-11-19 13:59:02

标签: regex numbers range

我不能为我的生活让我的头围绕这个正则表达式的东西经过几天的摆弄我发现自己寻求那些比我更聪明的人的帮助。你们中的任何一个善良的灵魂给我写了一条线会找到并匹配0.00x.xx之间的数字吗?我确实需要小数,所以希望可以这样做。

我实际上尝试过使用

(\b|^)(0.00|0.01|0.02)(\b|$) 

直到x.xx等等,但我无法适应其余的因为我需要它进入100.00+。有人会介意为我快速鞭打一些东西吗? :)我会比你想象的更感激!非常感谢您的时间。

修改
所以我忘了解释我在这里想要实现的目标,我将它与一个名为Page Monitor的Chrome插件一起使用(生命保护程序的人在你有时间杀人时尝试一下!)每次ping一个网站更新,这也适用于股票,但我试图让它只在价格低于特定点时提醒我,例如每股$4.99(\b|^)([0-9]+\.[0-9]{2})(\b|$)([0-9]+.[0-9]+)是否足够?

4 个答案:

答案 0 :(得分:1)

为什么这不够好:([0-9] + \。[0-9] +)?

如果您可以给出一个输入示例以及您期望的输出,那么编写正则表达式会更容易。

更新:$ sign是RegEx中的保留字符,它表示行尾,因此如果您打算使用它,则需要使用\ $。

所以你的正则表达式是\ $([0-9] + \。[0-9] +),这将捕获你的4.99美元和5.10美元等,而不仅仅是4.99美元

一般来说,正则表达式擅长捕获数据,而不是分析它,但如果必须,你可以这样做以确定价格何时低于4.99美元=> \ $(([0-3] \ [0-9] +)|。(4 \ [0-8] [0-9])|。(4 \ 0.9 [0-8]))

显然它浪费了资源:)

答案 1 :(得分:0)

没有提供足够的信息,但是如果数字是整个值,或者如果它在一个更大的字符串中并且数字没有像“foo8.9bar”这样的其他内容,那么它将匹配。这将匹配小数点左侧的任何1位或更多位数,右侧正好是2位数

(\b|^)([0-9]+\.[0-9]{2})(\b|$)

答案 2 :(得分:0)

(\ b | ^)和(\ b | $)是多余的,因为\ b意味着^和$。

答案 3 :(得分:0)

这个正则表达式:(\ d + \。\ d {2})应该这样做。