我需要检查“如果不匹配”。 匹配是否正常:
<?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。
答案 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 强>