如何使下面的正则表达式检测价格只有7英镑不仅一切> 9
/\d[\d\,\.]+/is
感谢
答案 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
编辑:其他案例已添加