Php 模式数组的RegExp不匹配

Php 模式数组的RegExp不匹配,php,regex,Php,Regex,我需要检查“如果不匹配”。 匹配是否正确: <?php $string1 = 'BB123'; $string2 = 'ZZ123'; $pattern = '/^(AA.*|BB.*|CC.*)$/'; echo preg_match($pattern, $string1); echo preg_match($pattern, $string2); 我收到100美元 通过仅更改模式帮助我接收0和1 ^(?!AA.*|BB.*|CC.*).*$

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

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

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

   echo preg_match($pattern, $string1);
   echo preg_match($pattern, $string2);
我收到100美元

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

    ^(?!AA.*|BB.*|CC.*).*$
使用此选项。如果负前瞻失败,则通过。*接受字符串。

您可以尝试此选项

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

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

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

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


为什么不使用
echo!预匹配($pattern,$string1)输出的反向,因为我需要将模式放入输出文件,这取决于规则“包含”或“除外”。
$string1='HHBB123'
$string2='HHZZ123'
regexp失败了这项工作,我忘记了结尾的
*
。谢谢我认为您也可以删除类似于
^(?!AA | BB | CC)的模式中的冗余
*
。*$
否,因为有时我需要使用任何字符(
*
),但有时我需要检查完整的字符串。无论如何,谢谢,我们已经将regexp修改为
^(?AA.*$|BB.*$| CC.*$).*$
任务是将字符串规则转换为regexp模式,如规则:“AB1234,BC*,DE3333”到带有修饰符“contains”或“except”的regexp
<?php
    $string1 = 'BB123';
   $string2 = 'ZZ123';

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

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

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