会议召开地点:    美国 • California • Coronado会议开始时间:这样一个字段我要怎样才能将  美国  California  Coronado 分别匹配出来。。
'/ • (.*?)会议开始时间/is'
这样的写就成 ‘California • Coronado’这样了

解决方案 »

  1.   

    $s = 美国 • California • Coronado会议开始时间:
    preg_match_all('/(.{4}).*\n/i',$s,$arr);
    这样可以匹配美国中文(UTF-8加6),后面就不行了。
      

  2.   


    $str = "会议召开地点:    美国 • California • Coronado会议开始时间:";
    $match = "/ • (.*?)会议开始时间/is";
    preg_match_all($match , $str , $arr);
    echo preg_replace("/(&[a-z]+;)+/" , " " , $arr[1][0]);
      

  3.   

    $str = "会议召开地点:    美国 • California • Coronado会议开始时间:";
    $match = "/ *(.*?) • (.*?)会议开始时间/is";
    preg_match_all($match , $str , $arr);
    echo preg_replace("/(&[a-z]+;)+/" , " " , $arr[1][0])." ".preg_replace("/(&[a-z]+;)+/" , " " , $arr[2][0]);
      

  4.   

    楼上的高手,,。 这样匹配下来,,也是California Coronado  这样显示的呀。。 我是想分成三部分匹配下来
      

  5.   


    $str = "会议召开地点:    美国 • California • Coronado会议开始时间:";
    $tmp = preg_split("/(&[a-z]+;)+/", $str);
    $tmp[3] = preg_replace("/[^a-zA-Z]/", "" , $tmp[3]);
    var_dump($tmp);
    -------------------------结果-----------
    array(4) {
      [0]=>
      string(21) "会议召开地点:"
      [1]=>
      string(6) "美国"
      [2]=>
      string(10) "California"
      [3]=>
      string(8) "Coronado"
    }
      

  6.   

    貌似没有一个人想到用html_entity_decode()函数……
      

  7.   

    谢谢楼上各位啦。。
    html_entity_decode 这个函数用的还要加个参数呢。不大会用。