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);
?>