正则表达式字符串取反 怎么弄?我有一个url规则如下: mm.[*|a|b|add].cn 其中 a , b , add 表示例外 例如 mm.a.cn 无法匹配 mm.x.cn 可以匹配 如何写正则??? 我只知道 mm\.[a|b|add]\.cn 可以匹配所有的例外,但是我就是想要一个取反的结果? 正则表达式 正则 url 分享到: ------解决方案--------------------$s1= 'mm.a.cn'; $s2= 'mm.add.cn'; $s3= 'mm.c.cn'; $p='/mm\.(.+)(?------解决方案--------------------b------解决方案--------------------add)\.cn/'; $bool1=preg_match($p,$s1); $bool2=preg_match($p,$s2); $bool3=preg_match($p,$s3); var_dump($bool1,$bool2,$bool3); int(0) int(0) int(1) ------解决方案--------------------preg_match('#www\.(a------解决方案--------------------b------解决方案--------------------add)\.cn#',$str) 要不匹配的话 !preg_match('#www\.(a------解决方案--------------------b------解决方案--------------------add)\.cn#',$str)------解决方案--------------------只能对LZ说――这个正则很难写的 引用: $s1= 'mm.a.cn'; $s2= 'mm.add.cn'; $s3= 'mm.c.cn'; $p='/mm\.(.+)(?------解决方案--------------------b------解决方案--------------------add)\.cn/'; $bool1=preg_match($p,$s1); $bool2=preg_match($p,$s2); $bool3=preg_match($p,$s3); var_dump($bool1,$bool2,$bool3); int(0) int(0) int(1) 试试 mm.aadd.cn ?------解决方案--------------------$s =<<< TXT mm.a.cn mm.x.cn mm.aadd.cn mm.c.cn TXT; preg_match_all('/mm\.(?!a------解决方案--------------------b------解决方案--------------------add).*?\.cn/s', $s, $r); print_r($r); preg_match_all('/mm\.(?!a\.------解决方案--------------------b\.------解决方案--------------------add\.).*?\.cn/s', $s, $r); print_r($r);Array ( [0] => Array ( [0] => mm.x.cn [1] => mm.c.cn ) ) Array ( [0] => Array ( [0] => mm.x.cn [1] => mm.aadd.cn [2] => mm.c.cn ) )------解决方案--------------------preg_match_all('/mm\.(?!a\.------解决方案--------------------b\.------解决方案--------------------add\.).*?\.cn/s', $s, $r); 可写作 preg_match_all('/mm\.(?!(?:a------解决方案--------------------b------解决方案--------------------add)\.).*?\.cn/s', $s, $r);------解决方案-------------------- 引用: preg_match_all('/mm\.(?!a\.------解决方案--------------------b\.------解决方案--------------------add\.).*?\.cn/s', $s, $r); 可写作 preg_match_all('/mm\.(?!(?:a------解决方案--------------------b------解决方案--------------------add)\.).*?\.cn/s', $s, $r);