本帖最后由 woshimajia0002 于 2010-04-29 15:29:45 编辑

解决方案 »

  1.   


    $str = '登机航站楼:北京国际机场2号航站楼
    免费行李:20公斤
    误机费:如无法搭乘当次航班应提前24小时通知取消记录
    改期条件: 更改后的出发日期必须在2010-2-10到2010-6-30之间在最长停留期限内,改期免费;
    退票条件:完全未使用收取人民币300元/次;部分使用不允许
    儿童折扣:75
    停留期限0天-6月';
    $str = str_replace("\n", '<br>', $str);$str = preg_replace('/([\d]+|\:|\-|\<br\>)/', " $1 ", $str);
    $arr = preg_split('/[\s]+/', $str);
    print_r($arr);
      

  2.   


    $str=<<<EOD登机航站楼:北京国际机场2号航站楼
    免费行李:20公斤
    误机费:如无法搭乘当次航班应提前24小时通知取消记录
    改期条件: 更改后的出发日期必须在2010-2-10到2010-6-30之间在最长停留期限内,改期免费;
    退票条件:完全未使用收取人民币300元/次;部分使用不允许
    儿童折扣:75
    停留期限0天-6月
    EOD;
    preg_match_all('/[\x{4E00}-\x{9FA5}]+/u',$str,$matches);var_dump($matches[0]);
      

  3.   


    $str = <<<EOD
    登机航站楼:北京国际机场2号航站楼
    免费行李:20公斤
    误机费:如无法搭乘当次航班应提前24小时通知取消记录
    改期条件: 更改后的出发日期必须在2010-2-10到2010-6-30之间在最长停留期限内,改期免费;
    退票条件:完全未使用收取人民币300元/次; 部分使用不允许
    儿童折扣:75
    停留期限0天-6月
    EOD;
    var_dump(preg_split ("/\n|(:|<br \/>|\d{4}\-\d{1,2}\-\d{1,2}|\d+|\-)/", nl2br($str),-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY));呵呵,其实自己写最好,别人写的不一定能满足你所有的情况。
      

  4.   

    $str = '登机航站楼:北京国际机场2号航站楼
    免费行李:20公斤
    误机费:如无法搭乘当次航班应提前24小时通知取消记录
    改期条件: 更改后的出发日期必须在2010-2-10到2010-6-30之间在最长停留期限内,改期免费;
    退票条件:完全未使用收取人民币300元/次;部分使用不允许
    儿童折扣:75
    停留期限0天-6月';
    $str = str_replace("\n", '<br>', $str);preg_match_all("/[\x80-\xff]+|[-\d]+|[\x20-\x7f]+/", $str, $reg);
    print_r($reg[0]);
    Array
    (
        [0] => 登机航站楼
        [1] => :
        [2] => 北京国际机场
        [3] => 2
        [4] => 号航站楼
        [5] => <br>
        [6] => 免费行李
        [7] => :20
        [8] => 公斤
        [9] => <br>
        [10] => 误机费
        [11] => :
        [12] => 如无法搭乘当次航班应提前
        [13] => 24
        [14] => 小时通知取消记录
        [15] => <br>
        [16] => 改期条件
        [17] => : 
        [18] => 更改后的出发日期必须在
        [19] => 2010-2-10
        [20] => 到
        [21] => 2010-6-30
        [22] => 之间在最长停留期限内
        [23] => ,
        [24] => 改期免费
        [25] => ;
        [26] => <br>
        [27] => 退票条件
        [28] => :
        [29] => 完全未使用收取人民币
        [30] => 300
        [31] => 元
        [32] => /
        [33] => 次
        [34] => ;
        [35] => 部分使用不允许
        [36] => <br>
        [37] => 儿童折扣
        [38] => :75
        [39] => <br>
        [40] => 停留期限
        [41] => 0
        [42] => 天
        [43] => -6
        [44] => 月
    )