正则表达式首先避免超过一个零

时间:2014-11-15 08:05:08

标签: php regex pattern-matching

我想要符合以下情况的正则表达式:它将用作输入字段作为模式;

情况下:

1. 000   //not match
2. 100.000  //match
3. 0         //match
4. 0.0    //match
5. 0.01   //match
6. 00100   // not match    
7. 001.1   //not match
8. 101   // match 
9. 0.0.01 //not match
10. 02001 // not match

我尝试使用[0-9]+(\.[0-9][0-9]?)?

我将在输入字段中用作模式。请帮帮我。



<input type="text"  required="" pattern="[0-9]+(\.[0-9][0-9]?)?"  name="bstatus[bstatus_amount][]">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

您可以通过前瞻来否定,该前瞻声明缺少零前导数字和重复点:

^(?!0\d|[^.]*\.[^.]*\.)\d+(\.\d\d?)?

这是regex demo

虽然考虑您的用例,但您需要的只是:

^(?!0\d|[^.]*\.[^.]*\.)\d

这是regex demo

echo preg_match('/^(?!0\d|[^.]*\.[^.]*\.)\d/', $str);

答案 1 :(得分:-2)

非常简单的解决方案是:

/^00/

preg_match将返回true无效字符串。