<?php
//false
echo preg_match('/[^(test)]/','test');//true
echo preg_match('/[^(test)]/','this is a test');//true
echo preg_match('/test/','this is a test');
?>结果输出为:011,0代表false,1代表true

解决方案 »

  1.   

    楼上的输出结果是 0 1 1
    可是第二、三项中确实包含了 'test'字符串呀
      

  2.   

    第二项是:有与test不匹配的字符串就返回true,里面有"this is"啊
      

  3.   

    不知道你想要什么样的效果如果一个字符串中含test,就返回false那么用 ustb(偶然) 的方法
      

  4.   

    this is 包含了t、s 两个字母,这正是问题的关键想要的效果并非是不匹配单一的字母
    [^t]不匹配包含t的字符串
    [^e]不匹配包含e的字符串.....
    但要匹配不包含test(不是单一的字母,而是这个单词),该怎么写?
      

  5.   

    ustb(偶然) 的方法的方法啊有test,就返回false
      

  6.   

    <?phpfunction tf($str)
    {
     return preg_match('/test/',$str) ? "false": "true";}
    echo tf('test').'<br>';echo tf('this is a test').'<br>';echo tf('this is');
    ?>输出false
    false
    true
      

  7.   

    唉,我表达的不是很清楚$str = '<abc>abc<abc><abc>|abc<ab>ab<ab>|<abc>abc';preg_match如何取出 |abc<ab>ab<ab>| ?
      

  8.   

    preg_match("/\|.+\|/",$str,$regs);
    print_r($regs);
      

  9.   

    呵呵,唠叨兄我标记|的意思是给一个参考实际上|是没有的,只是<abc>abc<abc><abc>abc<ab>ab<ab><abc>abc不过还是要谢谢大家
      

  10.   

    <?php$str='<abc>abc<abc><abc>abc<ab>ab<ab><abc>abc';preg_match("/abc<ab>ab<ab>/",$str,$regs);
    print_r($regs);?>说实在的,这个例子很差,这和在'abcd'中取出某个字母一样说这个例子不好,是因为它没有规律性,失去了正则表达式的意义不知道你想要什么样的效果