会议召开地点: 美国 • California • Coronado会议开始时间:这样一个字段我要怎样才能将 美国 California Coronado 分别匹配出来。。
'/ • (.*?)会议开始时间/is'
这样的写就成 ‘California • Coronado’这样了
'/ • (.*?)会议开始时间/is'
这样的写就成 ‘California • Coronado’这样了
preg_match_all('/(.{4}).*\n/i',$s,$arr);
这样可以匹配美国中文(UTF-8加6),后面就不行了。
$str = "会议召开地点: 美国 • California • Coronado会议开始时间:";
$match = "/ • (.*?)会议开始时间/is";
preg_match_all($match , $str , $arr);
echo preg_replace("/(&[a-z]+;)+/" , " " , $arr[1][0]);
$match = "/ *(.*?) • (.*?)会议开始时间/is";
preg_match_all($match , $str , $arr);
echo preg_replace("/(&[a-z]+;)+/" , " " , $arr[1][0])." ".preg_replace("/(&[a-z]+;)+/" , " " , $arr[2][0]);
$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"
}
html_entity_decode 这个函数用的还要加个参数呢。不大会用。