Php 用于避免第一个大于一个零的正则表达式

Php 用于避免第一个大于一个零的正则表达式,php,regex,pattern-matching,Php,Regex,Pattern Matching,我想要匹配以下情况的正则表达式:它将作为模式用于输入字段 案例: 我尝试使用[0-9]+(\[0-9][0-9]?)? 我将在输入字段中用作模式。请帮帮我 非常简单的解决方案是: /^00/ preg\u match将为无效字符串返回true。您可以使用一个断言没有零前导数字和重复点的前瞻来进行否定: ^(?!0\d |[^.]*\..[^.]*\.\d+(\.\d\d?)吗? 这是一本书 尽管考虑到您的用例,但您需要的只是: ^(?!0\d |[^.]*\.[^.]*\.\d 这是一本

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

案例:

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

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


非常简单的解决方案是:

/^00/

preg\u match
将为无效字符串返回
true

您可以使用一个断言没有零前导数字和重复点的前瞻来进行否定:

^(?!0\d |[^.]*\..[^.]*\.\d+(\.\d\d?)吗?
这是一本书

尽管考虑到您的用例,但您需要的只是:

^(?!0\d |[^.]*\.[^.]*\.\d
这是一本书


您在发布之前检查过此代码吗?它与给定案例中的任何一个都不匹配。请看这里问题的标题是“Regex for avoid first than one zero”-我的Regex在字符串begin上查找两个零。这不是匹配此Regex并反转结果的最佳方法,考虑到空字符串也将被视为有效。
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
echo preg_match('/^(?!0\d|[^.]*\.[^.]*\.)\d/', $str);