变通一下。
先查第一个字是不是a,然后strstr()看看是否含有xyz

解决方案 »

  1.   


    $string="anassdfasfdasfdsxyzsff";
    if(preg_match("/^a(.*)[^(xyz)](.*)$/",$string)){
    echo "aa";
    }
      

  2.   


    \ba\w*x\w*y\w*z\w*\b看看这个对不对,应该是没问题。个人觉得不是很难啊,怎么会让楼主如此费神,如果正确记得给分哈~~
      

  3.   

    以 a 开头,字符串中不能含连续的 xyz 匹配前先查一下是否有xyz或预查xyz 
      

  4.   

    /^a((?!xyz).)+/
    本地测试可以。给分哈。呵呵
      

  5.   

    2楼的实在是,郁闷,XYZ是一个变量,有N种形式,
      

  6.   

    我要求的是有连续的XYZ 不匹配,现在上面给的全匹配
      

  7.   

    XYZ是一个变量?那就是说abc也不行,或者def也不行?
      

  8.   


    $string="anassdfasfdasfdsxyzxyzsff";
    if(preg_match("/^a([^xyz])+xyz([^xyz])+$/",$string)){
    echo "不匹配";
    }
    else{
           echo "匹配";
    }
      

  9.   

    $string="axyzxyzsff";
    if(preg_match("/^a([^xyz])*xyz([^xyz])*$/",$string)){
    echo "匹配";
    }
    else{
    echo "不匹配";
    }
      

  10.   

    回kemy88 
    你的两个例子按我的要求应该是都不匹配
      

  11.   

    $string="affxyzsff";
    你下在的也输出匹配 事实上这个也含XYZ,应该也是不匹配的
      

  12.   

    我变量的意思指,如
    x"yz"
    xy"z"
    x y"z"
    xy z
    xy      "z"
    等等 ,排列顺序是一样的,只是中间可以有空格,什么的,所以用str_replace肯定不行
      

  13.   

    我也想知道怎么用正则表示非某字符串,就是你说是xyz不能连续,但可以间隔出现。
      

  14.   


    if(preg_match("/^a(xyz)?([^xyz])*xyz([^xyz])*(xyz)?$/i",$string)){
    echo "不匹配";
    }
    else{
    echo "匹配";
    }
      

  15.   

    就是楼主需求都没整明白,让我们怎么写啊。 
    /^a((?!xyz).)+?$/这个就满足你开始那个需求。
      

  16.   

    回复 mylove0623 
    你试试这个
    $string="affxyzffsff"; 
    就知道你那个不行了
      

  17.   

    <?php
    //$str = "aaabbbxyz";
    //$str = "axbycy";
    //$str = "abcxyz";
    $str = "axyz";
    if (preg_match_all("/^a(?!.*xyz).+$/",$str,$m)) {
      print "Yes,Matched!";
    }
    else {
      print "No,Un-Matched!";
    }
    ?>
      

  18.   

    楼主。affxyzffsff这个不匹配啊。我这个是正确的。你能不能试试啊。我搞正则好几个月了。难道我骗你不成。靠
      

  19.   

    <?php
    #author:mylove
    $str = "affxyzffsff";
    if (preg_match_all("/^a((?!xyz).)+?$/",$str,$m)) {
      print "Yes,Matched!";
    }
    else {
      print "No,Un-Matched!";
    }
    ?>