搜索

首页  >  问答  >  正文

验证数字的正则表达式在我使用之前没有成功

我想在使用之前使用正则表达式验证我的数字,但是它没有成功。

我希望第一个数字以0开头,接着是2或5,然后是4,其余的数字继续到10位数。

<?php
$str = "0241310102";
$pattern = "([0]{1}[2,5]{1}[4]{1}[0-9]{7})";

if(preg_match($pattern, $str)){
echo "YES";
}else{
echo "NO";
}

?>

P粉690200856P粉690200856468 天前553

全部回复(1)我来回复

  • P粉329425839

    P粉3294258392023-09-14 13:05:30

    1. 您需要将模式锚定到字符串的开头/结尾(^$)。
    2. 单个数字不需要被指定为字符类[0]0
    3. 只有当量词与1不同时才需要指定0{1}0
    4. [2,5]将包括字符类中的逗号→ [25]
    $examples = [
        "0241310102",
        "1241310102",
        "0541310102",
        "0551310102",
        "0241"
    ];
    $pattern = '(^0[25]4[0-9]{7}$)';
    
    foreach ($examples as $example) {
        echo $example, ": ";
        if (preg_match($pattern, $example)) {
            echo "YES", "\n";
        } else {
            echo "NO", "\n";
        }
    }
    

    回复
    0
  • 取消回复