我有一个字符串,我想用正则表达式检查。不允许它以 0 开头。因此请参阅以下示例:
012344 = invalid
3435545645 = valid
021 = invalid
344545 = valid
等等
这个正则表达式在 PHP 中的外观如何?
PS。这必须是一个正则表达式解决方案!
我有一个字符串,我想用正则表达式检查。不允许它以 0 开头。因此请参阅以下示例:
012344 = invalid
3435545645 = valid
021 = invalid
344545 = valid
等等
这个正则表达式在 PHP 中的外观如何?
PS。这必须是一个正则表达式解决方案!
正则表达式应如下所示:
^[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-9][0-9]*/
. 请下次更好地研究您的问题。这也可以帮助你:正则表达式测试器
编辑:
是的,答案被否决了,因为它缺少锚点并且似乎是错误的。为了完整起见,我发布了我将与此正则表达式一起使用的 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")) {
//...
}
?>