PHP中的简单正则表达式模式

时间:2013-10-29 06:44:11

标签: php regex

我需要匹配字符串的前几个字符。如果符合以下情况,则匹配为真:

  1. 第一个字符是字母(不区分大小写)
  2. 第二个字符是数字或字母
  3. 如果第二个字符是数字,则匹配返回true
  4. 如果第二个字符是字母,则第三个字符必须是数字
  5. 该模式将忽略字符串
  6. 中的所有其他后续字符

    示例:

    AB1ghRjh  //true
    c1        //true
    G44       //true
    Tt7688    //true
    kGF98d    //false
    4FG3      //false
    4 5a      //false
    RRFDE     //false
    

    如果有人能提供一个例子,我将不胜感激。

    非常感谢!

2 个答案:

答案 0 :(得分:2)

正则表达式

^[a-zA-Z](\d|[a-zA-Z]\d).*

答案 1 :(得分:1)

/^(?:[a-z]{2}|[a-z])\d.*$/im

说明:

^   # Start of string
    (?: # Start non-capturing group
        [a-z]{2}    # Two letter
        |   # OR
        [a-z]   # One letter
    )   # End of non-capturing group
    \d  # At least a digit here
    .*  # Escape all other characters
$   # End of string

i标记表示不区分大小写,m标记表示生成^& $在每一行上进行匹配(如果您的输入没有换行,则可选)

Live demo

然后使用preg_match函数匹配字符串:

if(preg_match("/^(?:[a-z]{2}|[a-z])\d.*$/i", "AB1ghRjh"))
{
    echo "Matched";
}