呵呵,搞定了
<?
$str = '我很喜欢看《程序员大本营》中的文章。';
preg_match_all("/《(.*)》/sU",$str,$arr);
print_r( $arr[1]);
?>

解决方案 »

  1.   

    $str = '我很喜欢看《程序员大本营》中的文章。';
    echo preg_replace("/.*《(.*)》.*/","\\1",$str);
      

  2.   

    又遇到问题了如果这个字符串是这样的,怎么处理呢?
    $str = '我《程序员大本营1》很《程序员大本营2》喜《程序员大本营3》欢《程序员大本营4》看《前面多了一个或多个《《程序员大本营5》中的文章。';想一次得到“程序员大本营n”的内容
    用前面的例子,最后一个总是匹配到“前面多了一个或多个《《程序员大本营5中的文章。”我修改的例子:
    __________________________________________________________________$str = '我《程序员大本营1》很《程序员大本营2》喜《程序员大本营3》欢《程序员大本营4》看《前面多了一个或多个《《程序员大本营5》中的文章。';
    echo preg_replace("/.*《(.*)》.*/isU","[start]\\1[end]\r\n",$str);
    __________________________________________________________________希望得到的效果:
    __________________________________________________________________[start]程序员大本营1[end]
    [start]程序员大本营2[end]
    [start]程序员大本营3[end]
    [start]程序员大本营4[end]
    [start]程序员大本营5[end]
    __________________________________________________________________
    请帮忙看看,谢谢了
      

  3.   

    preg_match_all("/《(.*)》/",$str,$regs);
    print_r($regs);
      

  4.   

    try:
    <?
    preg_match_all("/《([^《]+)》/isU",$str,$regs);
    print_r($regs);
      

  5.   

    preg_match_all("/《([^《]+)》/isU",$str,$regs);如何表示不匹配一个指定的字符串呢[^《] 是不匹配《
    如果是abc该怎么写?谢谢
      

  6.   

    如果
    $str = 'abcfff呵呵呵fffabcabcfff呵呵呵fffabc';是fff分割不是《 怎么写?如果只是《上面的代码是对的
    http://expert.csdn.net/Expert/topic/2298/2298360.xml?temp=.4160578
    这个帖子提到了类似的问题
    _______________________________________________
    请问如何做不包含一定字符串的筛选??如:/[^a-z]/i 表示不包含英文字母但是如果我希望不包含一定字符串呢,也就是如何把一个字符串作为一个正则原子??如:不包含 test 字符串/[^(test)]/ 不行 ,/(test)[^\1]/ 也不行~~~~~~~~~~~~~~~~~~~~
    _______________________________________________