RegEx与模式数组不匹配

时间:2014-08-11 07:13:07

标签: php regex

我需要检查“如果不匹配”。 匹配是否正常:

<?php
   $string1 = 'BB123';
   $string2 = 'ZZ123';

   $pattern = '/^(AA.*|BB.*|CC.*)$/';

   echo preg_match($pattern, $string1);
   echo preg_match($pattern, $string2);

我收到1和0,这没关系。 但如果将模式改为

$pattern = '/^(?!AA.*|BB.*|CC.*)$/';

我收到了00。

通过仅更改模式帮助我收到0和1。

2 个答案:

答案 0 :(得分:2)

    ^(?!AA.*|BB.*|CC.*).*$

使用此选项。如果否定前瞻失败,则接受字符串。*。

答案 1 :(得分:0)

你可以试试这个

<?php
    $string1 = 'BB123';
   $string2 = 'ZZ123';

   $regexp = "(AA.*)|(BB.*)|(CC.*)"; 

   $pattern = "/^((?!(".$regexp.")).)*$/";

   echo preg_match($pattern, $string1);
   echo preg_match($pattern, $string2);
   ?>

<强> Demo