-4

我需要 PHP 中的正则表达式来验证字符串,例如:“AB345678”或“12345678”。也就是说,八 (8) 个字母字符串包含前 2 个字母为字母或数字,但不是两者的组合,然后是其余 6 个数字字母。我试图自己做,但它不起作用。

这是我的代码:

/^[0-9a-zA-Z]{2}[0-9]{6}$/

我是 Regex 的新手,因此在这里需要帮助。

提前致谢。

4

4 回答 4

4

你可以这样做

^([a-zA-Z]{2}|\d{2})\d{6}$
于 2013-04-18T06:53:50.137 回答
2

使用|(又名交替运算符或管道运算符)说“左侧或右侧”:

/^([0-9]{2}|[a-zA-Z]{2})[0-9]{6}$/

于 2013-04-18T06:53:00.390 回答
0

为了兼容 unicode:

^(?:\pL{2}|\pN{2})\pN{6}$

用 php:

if (preg_match('/^(?:\pL{2}|\pN{2})\pN{6}$/u', $string)) {
    echo "OK";
}
  • \pL代表任何字母。
  • \pN代表任何数字。
于 2013-04-18T07:38:12.387 回答
0
/^ \d{8} | (?: [a-zA-Z]{2} \d{6} ) $ /x
于 2013-04-18T06:59:02.740 回答