价格正则表达式的帮助

时间:2010-10-26 14:55:45

标签: regex

如何使下面的正则表达式检测价格只有7英镑不仅一切> 9

/\d[\d\,\.]+/is

感谢

3 个答案:

答案 0 :(得分:3)

匹配单个数字,您可以将其更改为

/\d[\d,.]*/

+表示需要一个或多个,这就是为什么整件事只与7不匹配。 *为0或更高,因此额外数字或,.成为可选项。


答案越长,答案就越复杂。例如,在正则表达手册中,有一段摘录:(如果您希望^$2中的apple $2 each相匹配,请将其删除,但请注意当数字为1000或更多时,需要,。例如,第一个正则表达式不匹配1000.33

(已删除图书中的非来源图片)

答案 1 :(得分:0)

您的表达式允许123...3456 ...我想您可能需要(£|$|€)?\d\d+((,|.)\d{2})?

之类的内容

这将要求来源具有货币符号,并且需要两位数字以及分隔符。

答案 2 :(得分:0)

您可能会更像下面这样的正则表达式。

/(?:\d+[,.]?\d*)|(?:[,.]\d+)/

测试集:

5.00
$7.00
6123.58
$1
.75

结果集:

[0] => 5.00
[1] => 7.00
[2] => 6123.58
[3] => 1
[4] => .75

编辑:其他案例已添加