我有一个字符串,我想用正则表达式检查。它不允许以0开头。所以请看下面的例子:
012344 = invalid
3435545645 = valid
021 = invalid
344545 = valid
等
这个正则表达式在PHP中看起来如何?
PS。这必须是正则表达式解决方案!
答案 0 :(得分:1)
REGEX应该是这样的:
^[1-9][0-9]*$
PHP代码:
<?php
$regex = "#^[1-9][0-9]*$#";
function test($value, $regex)
{
$text = "invalid";
if(preg_match($regex, $value)) $text = "valid";
return $value+" = "+$text+"\n\r";
}
echo test('012345', $regex);
echo test('12345', $regex);
?>
答案 1 :(得分:-2)
那将是一个简单的/[1-9][0-9]*/
。
请在下次更好地研究您的问题。
这也可以帮助你:Regular expression tester
修改强>
是的,答案得到了落实,因为它缺少了锚点,似乎是错误的。为了完整,我发布了我将使用这个正则表达式的PHP代码。不,没有错。它可能不是最优雅的方式,但我更喜欢检查正则表达式是否与整个字符串匹配。一个原因是要调试正则表达式并查看它实际匹配的内容我只需在=== $value
之后注释return $matches[0]
<?php
function matches($value) {
preg_match("/[1-9][0-9]*/", $value, $matches);
return $matches[0] === $value;
}
//Usage:
if (matches("1234")) {
//...
}
?>