preg_match正则表达式匹配2个字符和2到10个数字

时间:2014-05-04 13:15:54

标签: regex preg-match

我需要做一个正则表达式,如果字符串中的前两个字符是2个字母,其余的只是数字,长度为2 - 10,则返回true。

我迷失了方向。我只是无法想象如何做到这一点。

这就是前一个人离开我的地方:

function clearTerm($term) {
    if( preg_match('/^[a-z0-9()\- ]+$/i', $term) ) {
        return true;
    } else {
        return false;
    }
}

这是我的尝试,但它没有希望。我无法弄清楚如何检查前两个,然后检查其余部分。

function clearTerm($term) {
    if( preg_match('/^([a-z0-9]+$/i{2})', $term) ) {
        return true;
    } else {
        return false;
    }
}

正则表达式需要返回true,如果: 前2个字符是小写的2个字母(lg) 其余的是数字,长度为2到10位。

所以,lg01234 -> True, lgx1 -> False

试过并失败了,所以在这里问道。

1 个答案:

答案 0 :(得分:1)

function clearTerm($term) {
    if( preg_match('/^[a-z]{2}[0-9]{2,10}$/', $term) ) {
        return true;
    } else {
        return false;
    }
}


NODE                       EXPLANATION
--------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  [a-z]{2}                 any character of: 'a' to 'z' (2 times)
--------------------------------------------------------------------------------
  [0-9]{2,10}              any character of: '0' to '9' (between 2 and 10 times
                           (matching the most amount possible))
--------------------------------------------------------------------------------
  $                        before an optional \n, and the end of the string