我需要一个PHP正则表达式来验证字符串,如:"AB345678"或"12345678"。即8个字母字符串,其中前2个字母为字母或数字,但不是两者的组合,其余6个字母为数字。我试着自己做这件事,但行不通。
下面是我的代码:/^[0-9a-zA-Z]{2}[0-9]{6}$/
我是Regex的新手,因此需要帮助。
你可以这样做
^([a-zA-Z]{2}|'d{2})'d{6}$
使用|
(又名交替操作符或管道操作符)表示"左侧或右侧":
/^([0-9]{2}|[a-zA-Z]{2})[0-9]{6}$/
/^ 'd{8} | (?: [a-zA-Z]{2} 'd{6} ) $ /x
为了与unicode兼容:
^(?:'pL{2}|'pN{2})'pN{6}$
与php: if (preg_match('/^(?:'pL{2}|'pN{2})'pN{6}$/u', $string)) {
echo "OK";
}
-
'pL
代表任意字母 -
'pN
表示任意数字。