我正在尝试使用preg_match来匹配以零开头的数字以指示无效输入。 01
,0023
,00.4
等数字无效;但是0.12
之类的数字是有效的。输入将是计算器条目,例如09 * 108 + 0.19 + 4009
。在这种情况下,由于09
,表达式将无效。
到目前为止,我的表达式如下:preg_match("/[^1-9]+0[0-9]+/", $subject)
我尝试做的是匹配任何数字字符串前面的零,但前面没有另一个数字字符串。因此109
有效,但1 + 09无效。但是,它不适用于1 + 4009
等案例。
答案 0 :(得分:1)
preg_match('/\b0[0-9]+(?:\.[0-9]+)?\b/', $subject)
\b
用于字边界。