使用preg_match验证特定语法

时间:2015-02-04 14:18:10

标签: php regex preg-match

我在网上通过关于正则表达式的示例和文档之后得出了以下代码,但是它没有按预期工作。因此,根据以下要求,只应验证'ABCDEF05','A21和'C99'。

要求:

  • 字符串的第一部分可以是;最小1最多6个字符长。大写 仅
  • 字符串的第二部分可以是;恰好2个字符长,但00不是 接受。
  • 所以在一起:它最多可以是3个最多8个字符。

TEST:

$arr = array('d12', '1', 'A123', 'A1234', 'AB00', 'ABCDEFG01', 'ABCDEF00', 'ABCDEF05', 'A21', 'C99');

foreach ($arr as &$key) {
   if (preg_match('/^([A-Z]{1,6})([1-9][0-9]{2})/', $key)) {
      echo "$key\n";
   }
}

1 个答案:

答案 0 :(得分:1)

使用否定前瞻:

if (preg_match('/^([A-Z]{1,6})(?!00)(\d\d)$/', $key)) {