正则表达式字符串取反 怎么弄?

wo_buhui 2013-10-18 11:15:58
我有一个url规则如下:

mm.[*|a|b|add].cn

其中 a , b , add 表示例外

例如

mm.a.cn 无法匹配

mm.x.cn 可以匹配

如何写正则???

我只知道 mm\.[a|b|add]\.cn 可以匹配所有的例外,但是我就是想要一个取反的结果?
...全文
939 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ImN1 2013-10-18
  • 打赏
  • 举报
回复
只能对LZ说——这个正则很难写的
引用 1 楼 jordan102 的回复:
$s1= 'mm.a.cn';
$s2= 'mm.add.cn';
$s3= 'mm.c.cn';
$p='/mm\.(.+)(?<!a|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 ?
Anew_G 2013-10-18
  • 打赏
  • 举报
回复
preg_match('#www\.(a|b|add)\.cn#',$str)
要不匹配的话
!preg_match('#www\.(a|b|add)\.cn#',$str)
一起混吧 2013-10-18
  • 打赏
  • 举报
回复
$s1= 'mm.a.cn';
$s2= 'mm.add.cn';
$s3= 'mm.c.cn';
$p='/mm\.(.+)(?<!a|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)
thy442030800 2013-10-18
  • 打赏
  • 举报
回复
无意中看到这个贴的。。 首先。。我不懂PHP,作为正则的角度来说,这个不是很简单么。。 反义排除掉这几个字符就行了: ^mm\.[^ab(?:add)]+\.cn$ [^ab(?:add)] --> 排除a b add
引用 5 楼 xuzuning 的回复:
preg_match_all('/mm\.(?!a\.|b\.|add\.).*?\.cn/s', $s, $r); 可写作 preg_match_all('/mm\.(?!(?:a|b|add)\.).*?\.cn/s', $s, $r);
版主这个写法是不是有点多余~
wo_buhui 2013-10-18
  • 打赏
  • 举报
回复
四楼应该可以啊,先结贴了。
ImN1 2013-10-18
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
preg_match_all('/mm\.(?!a\.|b\.|add\.).*?\.cn/s', $s, $r); 可写作 preg_match_all('/mm\.(?!(?:a|b|add)\.).*?\.cn/s', $s, $r);
把后一个字符也加进去,整体作为排除对象啊?受教了
xuzuning 2013-10-18
  • 打赏
  • 举报
回复
preg_match_all('/mm\.(?!a\.|b\.|add\.).*?\.cn/s', $s, $r); 可写作 preg_match_all('/mm\.(?!(?:a|b|add)\.).*?\.cn/s', $s, $r);
xuzuning 2013-10-18
  • 打赏
  • 举报
回复
$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 ) )

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧