字符串中的正则表达式价格

时间:2011-03-28 22:22:08

标签: regex

我发现这个正则表达式可以找到1.00或1.00的价格。但对于长度为3位或更长的值(如“365”),它也会返回true。

/([\d,]+.\d+)+/i

无论如何都要修改此正则表达式,以便对所有类型的浮点价格返回true,但不包括3个连续数字,如“365”或“1000”等:

1.00 $ 1.00包装

5 个答案:

答案 0 :(得分:2)

这应该找到所有带有小数点的单位数字。所以:

1.xxx
2.xxx
...
9.xxx

但不是

365365.000

/(\d\.\d+)/i

答案 1 :(得分:1)

如果我没有记错,而不是'。',你需要使用'\。'。你拥有的东西会匹配任何东西,而第二个匹配角色'。'

/([\d,]+\.\d+)/

答案 2 :(得分:0)

.匹配所有内容,所以,逃避它:

/([\d,]+\.\d+)+/i

我甚至会这样做:

/\d{1,3}(,?\d{3})*\.\d+)+/i

答案 3 :(得分:0)

如果您希望在一段文字中匹配价格,例如:

  

1.00是有效价格,因此是1.50美元和10.12美元,但不是200.90美元或   £1000.10

然后,这将返回1.00$1.50$10.12作为匹配。

(^|\W{1})\d{1,2}\.\d{2}

答案 4 :(得分:0)

您可以使用{a,b}

限制正则表达式部件扩展名
\d{1,2}\.\d{2}$