正则表达式字符串取反如何弄
时间:2021-07-01 10:21:17
帮助过:23人阅读
正则表达式字符串取反 怎么弄?
我有一个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';<br>
- $s2= 'mm.add.cn';<br>
- $s3= 'mm.c.cn';<br>
- $p='/mm\.(.+)(?<!--a<br--><font color="#FF8000">------解决方案--------------------</font><br>b<br><font color="#FF8000">------解决方案--------------------</font><br>add)\.cn/';<br>
- $bool1=preg_match($p,$s1);<br>
- $bool2=preg_match($p,$s2);<br>
- $bool3=preg_match($p,$s3);<br>
- var_dump($bool1,$bool2,$bool3);
int(0) int(0) int(1)
------解决方案--------------------- preg_match('#www\.(a<br><font color="#FF8000">------解决方案--------------------</font><br>b<br><font color="#FF8000">------解决方案--------------------</font><br>add)\.cn#',$str)
要不匹配的话
- !preg_match('#www\.(a<br><font color="#FF8000">------解决方案--------------------</font><br>b<br><font color="#FF8000">------解决方案--------------------</font><br>add)\.cn#',$str)
------解决方案--------------------只能对LZ说――这个正则很难写的
试试 mm.aadd.cn ?
------解决方案--------------------- $s =<<< TXT<br>
- mm.a.cn <br>
- mm.x.cn <br>
- mm.aadd.cn<br>
- mm.c.cn<br>
- TXT;<br>
- <br>
- preg_match_all('/mm\.(?!a<br><font color="#FF8000">------解决方案--------------------</font><br>b<br><font color="#FF8000">------解决方案--------------------</font><br>add).*?\.cn/s', $s, $r);<br>
- print_r($r);<br>
- preg_match_all('/mm\.(?!a\.<br><font color="#FF8000">------解决方案--------------------</font><br>b\.<br><font color="#FF8000">------解决方案--------------------</font><br>add\.).*?\.cn/s', $s, $r);<br>
- 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);
------解决方案--------------------