$content = preg_replace("/\d{7,}/i", "", $content); 
删除长数字的,但是现在有个问题
我不想删除被 < 和 > 之间的数字比如这个:$content = "234234234<a href=222222342.html>aaa</a>";被 < 和 >括起来的我不想删除,有什么好的方法吗

解决方案 »

  1.   

    如果不考虑尖括号之间的嵌套关系,可以尝试下面的正则
    先split,再匹配替换$content = "234234234<a href=222222342.html>aaa</a>";
    $splitReg = "/<.*>/g";
    $contentMain = match($splitReg,$content)
    $splitArray = split($splitReg,$content);foreach ($splitArray as &$value){
      $value = preg_replace("/\d+/i", "", $value);
    }然后判断$contentMain和$splitArray的数组长度和两个数组的先后位置(可以用test或match正则/^<.*/),
    将两个数据元素交叉串联起来即可。这种方法虽然不是最好的办法,但也算是一种solution了哈。
      

  2.   


    $content = "234234234<a href=222222342.html>aaa</a>";
    $content = preg_replace("/(\d{7,})(<.*?>)/is", "\${2}", $content);  
    var_dump($content);//string '<a href=222222342.html>aaa</a>'作为参考吧 a标签之间 如果有数字再处理吧