求一正则,搜索一个字符串里不能包含有另一个字符串的写法,比如:现有一个字符串1:<--abc333def-->  字符串2:<--abcdef-->上面两个字符串的差别就是中间包含有一个字字符串“333”现写一个正则能搜索到字符串2,但不能有字符串1,感谢!

解决方案 »

  1.   

    /abcdef/  这个就无法匹配字串1啊,呵呵
      

  2.   

    这么简单的查找为什么要用正则呢?直接用strpos()查找不就行了。
    $str1 = '<--abc333def-->'; 
    $str2 = '<--abcdef-->';
    $search = 'abcde';
    echo strpos($str1,$search) ? 'True' : 'False';
    echo strpos($str2,$search) ? 'True' : 'False';
      

  3.   

    那就
    $abc=preg_quote(字串2);/{$abc}/这样写
      

  4.   

    现写一个正则能搜索到字符串2,但不能有字符串1,而串2不都是字母吗。如果是那就简单了,正则:$str="<--abcd2324effwefwe-->";//只要是字母不管多长都能找到。但是不能含数字其他字符!
    if(preg_match("/<--[a-zA-Z]+-->/",$str,$reg))
    echo $reg[0];
    else
    echo '未查找到!';
      

  5.   

    <?php$html = <<<HTML
    字符串1:<--abc333def--> 
    字符串2:<--abcdef-->
    HTML;$str = '333';
    $reg = "/<--(?:[^>](?!$str))*-->/ism";preg_match_all($reg, $html, $match);
    var_dump($match);
    ---------- PHP run ----------
    Array
    (
        [0] => Array
            (
                [0] => <--abcdef-->
            ))输出完成 (耗时 0 秒)