网络编程
位置:首页>> 网络编程>> Asp编程>> 正则表达式不匹配某个字符串

正则表达式不匹配某个字符串

  发布时间:2010-03-02 22:08:00 

标签:正则表达式,匹配,字符串

最近项目中要用到一个正则表达式,排除某个字符串,我们知道排除单个字符串的话,可以用[^abc],这样就可以排除a或者b或者c了,但是要排除abc呢? 

网上找了下,都不太好用,自己写了个,php下测试可用,如匹配非.php这个字符,那么正则表达式就是:

\.[^p]{1}[^h]{1}[^p]{1}

php测试代码为:


  1. <?php 

  2. $subject = "neeao.gif"; 

  3. $pattern = '/\.[^p]{1}[^h]{1}[^p]{1}/'; 

  4. preg_match($pattern, $subject, $matches); 

  5. print_r($matches); 

  6. ?>  


返回结果为:

Array ( [0] => .gif )

说明匹配成功了,其它语言的都大同小异。

上面提到的只适合单个匹配的情况,没有考虑多个字符串的情况,评论中有朋友提出了另外一种方法,又测试了下,发现另外一种可以使用的方法:

(?!php|gif).{3}

不匹配php和gif,且字符串长度为3的字符串,测试之:


  1. <?php 

  2. $subject = "neeao.php.gif.ljk"; 

  3. $pattern = '/\.(?!php|gif).{3}/is'; 

  4. preg_match($pattern, $subject, $matches); 

  5. print_r($matches); 

  6. ?>  


结果:Array ( [0] => .ljk ),成功匹配。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com