求正则表达式包含一个字符串但不包含另一个字符串写法比如:23asd Abc xx234ffs.fd4w EGC S231.ca23要求搜索包含Abc但是不包含EGC的正则表达式写法。Abc与EGC都是固定的。先谢谢各位高手帮忙

解决方案 »

  1.   

    什么意思?
    Abc xx234ffs.fd4w EGC S231.ca23算是一个字符串 还是什么?
      

  2.   


    是一行字符串,
    23asd Abc xx234ffs.fd4w EGC S231.ca23精确点就是我想 找到带Abc的但是不想找到里面有EGC 
      

  3.   

    参考
    $str1 = '23asd Abc xx234ffs.fd4w EGC S231.ca23';
    $str2 = '23asd Abc xx234ffs.fd4w EGX S231.ca23';
    $str3 = '23asd Abc xx234ffs.fd4w EGk SEGC.ca23';
    $pt   = '#^(?=.*\sAbc\s)(?:(?!\sEGC\s).)*$#i';echo preg_match($pt,$str1);//0
    echo preg_match($pt,$str2);//1
    echo preg_match($pt,$str3);//1