Php 在数字字符串中搜索字母字符时,preg_match返回1
我有以下代码片段,我不知道为什么这样的正则表达式匹配:Php 在数字字符串中搜索字母字符时,preg_match返回1,php,regex,preg-match,Php,Regex,Preg Match,我有以下代码片段,我不知道为什么这样的正则表达式匹配: <?php $string = "0123456789"; if(preg_match('/[a-zA-Z]*/', $string) === 1) { echo "match"; } else { echo "not match"; } ?> 当脚本运行时,它总是返回“match”。我希望它打印出“not match”,因为$string变量中没有alpha字符。有什么想法吗 if(preg_
<?php
$string = "0123456789";
if(preg_match('/[a-zA-Z]*/', $string) === 1) {
echo "match";
}
else {
echo "not match";
}
?>
当脚本运行时,它总是返回“match”。我希望它打印出“not match”,因为$string变量中没有alpha字符。有什么想法吗
if(preg_match('/[a-zA-Z]/', $string) === 1) {
echo "match";
}
else {
echo "not match";
*
表示0或更多,因此它匹配字符串开头的0个字母。您希望匹配1,因此请去掉*
*
表示0或更多,因此它匹配字符串开头的0个字母。你想匹配1,所以去掉它匹配的*
,因为你使用了*
量词。如果使用以下选项,则不匹配:
/[a-zA-Z]+/
这是因为
/[a-zA-Z]*/
也将匹配0个事件。它匹配,因为您使用了*
量词。如果使用以下选项,则不匹配:
/[a-zA-Z]+/
这是因为/[a-zA-Z]*/
也将匹配0个事件。试试这个
/^[A-z]+$/
[A-z]将匹配所有字母(小写和大写)
^$将确保除了这些字母表之外,没有任何东西是匹配的。试试这个
/^[A-z]+$/
[A-z]将匹配所有字母(小写和大写)
^$将确保除了这些字母表之外,没有其他匹配项。谢谢您的解释。我一开始就错了:)谢谢你的解释。我一开始就错了:)A-z匹配u和其他一些字符。A-z匹配u和其他一些字符。