<?php
$pattern = '/《.+?》/u';
$str = '《234》《行业》险制';
echo preg_replace( $pattern, '', $str, 1); 
?>

解决方案 »

  1.   

    谢谢,您的方法有效$pattern = '/<(.+?)>/u';
    $str = '<22><22>123';
    echo preg_replace( $pattern, '', $str, 1); 这样是有效$pattern = '/《(.*)》/u';
    $pattern = mb_convert_encoding($pattern, 'utf8', 'gbk');
    $str = '《异动》《异动》十天';
    $str = mb_convert_encoding($str, 'utf8', 'gbk');
    echo mb_convert_encoding(preg_replace( $pattern, '', $str ,1), 'gbk', 'utf8');但这样怎么就无效了呢?
      

  2.   

    因为你非要把utf转成gbk的。
    正则最后的u就是指定utf8的~
    你这是何苦呢,转过去又转回来
      

  3.   

    方法1
    $pattern = '/《(.*)》/u';
    $str = '《异动》《异动》十天';
    echo preg_replace( $pattern, '', $str ,1);方法2
    $pattern = '/《(.*)》/u';
    $pattern = mb_convert_encoding($pattern, 'utf8', 'gbk');
    $str = '《异动》《异动》十天';
    $str = mb_convert_encoding($str, 'utf8', 'gbk');
    echo preg_replace( $pattern, '', $str ,1);以上两种方法都不行啊?