我需要 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}$/
为了兼容 unicode:
^(?:\pL{2}|\pN{2})\pN{6}$
用 php:
if (preg_match('/^(?:\pL{2}|\pN{2})\pN{6}$/u', $string)) {
echo "OK";
}
\pL
代表任何字母。\pN
代表任何数字。/^ \d{8} | (?: [a-zA-Z]{2} \d{6} ) $ /x