我最近正在阅读"掌握正则表达式"
并在第24页上说
"匹配美元金额的一种方法是:
\$[0-9]+(\.[0-9][0-9])?
的
我们的表达式不匹配的一种值是$.49
。要解决这个问题,您可能会想要将加号更改为星号,但这不起作用。 " 的
这是什么意思?
因为我在一些正则表达式测试网站上检查了它 它匹配吗?
答案 0 :(得分:1)
问题是(\.[0-9][0-9])?
也是可选的。 \$[0-9]*(\.[0-9][0-9])?
可以匹配$
后没有数字。
确保拥有数字的方法是:
\$([0-9]+(\.[0-9][0-9])?|\.[0-9][0-9])
答案 1 :(得分:1)
您可以使用此正则表达式来解决此问题:
\$(?:[0-9]+(?:\.[0-9]{2})?|\.[0-9]{2})