求正则表达式一条:将英文单词中的a,e,i,o,u去掉(位于首位的除外)如:output 替换成 otpt

解决方案 »

  1.   

    /([^aeiou]+?)([a,e,i,o,u]+?)([^aeiou]+?)/
    取$1和$3的就可以了
      

  2.   

    $s='output';
    echo preg_replace('/(?<!^)[aeiou]/','',$s);
      

  3.   

    开启忽略大小写, (?<=[a-z])[aeiou] 替换为空就行.
      

  4.   

    上面两个(?<!^)[aeiou]  向左 否定 环视 即 在[aeiou] 左边 不能有^(就是行开始) 不过这里判断是单词首位
    (?<=[a-z])[aeiou]  向左 肯定 环视 即 在[aeiou] 左边 必须有[a-z] 这个比较符合原义 就是单词中间的元音字母