取数据库某个字段里面的某段内容,[attach]15627[/attach],想专门取出标签里面的数字,正则给个示例嘛

解决方案 »

  1.   

    $s='[attach]15627[/attach]';
    preg_match('#\[[^\]]+\](\d+)\[#',$s,$m);
    echo $m[1];
      

  2.   

    如果我把[attach]15627[/attach]这段内容换成img标签啊比如<img src="/i/eg_tulip.jpg"  alt="上海鲜花港 - 郁金香" />,怎么写比较好呢
      

  3.   

    echo preg_replace('#\[([^\]]+)\](\d+)\[/\1\]#','<img src="/i/eg_tulip.jpg"  alt="上海鲜花港 - 郁金香" />',$s);
      

  4.   

    1:\[ 匹配[,因为[ 是元字符,所以要加反斜杠转义
    2:([^\]]+) 匹配非]符号一次或多次
    \]:同1类似 
    (\d+):\d匹配数字
    \1:叫做反向引用,使用在同一个表达式中,匹配前面第一个子分组所匹配的内容。可以看一下这个博文学习一下正则:
    http://www.cnblogs.com/baochuan/archive/2012/03/12/2391135.html
      

  5.   


    $pr_2 = preg_replace('#\[([^\]]+)\](\d+)\[/\1\]#',"{$d}",$a);$sql3 = "insert into fanwe_supplier_location_2 (id , brief) values ({$b},'{$pr_2}')";为什么数据库报插入标签的错误呢
      

  6.   

    是个转义的问题好像,addslashes()函数
      

  7.   

    好像有多个[attach]标签匹配不出来吗,比如这个[attach]13360[/attach][attach]13359[/attach]