用正则表达式拆分csv

时间:2015-10-26 12:56:16

标签: php regex csv

您好我有一个具有以下结构的CSV文件:

A243503  ;H ;ZU, HS-JIM ;7;F122;VO ;A12 ;A2E;U;be;24.11.15 ;05.12.15 ;11^/
; ; 1 ;   1 ;A26 ;24.11.15 ;11:05;14:45;TL;F ;^/
18.10.15 ;18.10.15 ;BU;
    BLABLABLABLA BLABLABLABLA BLABLABLABLA
A243504;F  ;BAS, R   56  ;FC12VOp ;A12;App 2E; ;ern;24.11.15 ;05.12.15;11 ^/
 ;  ; 1 ;2  ;A26;24.11.15  ;11:05 ;14:45 ;TiXL  ;FC  ;   ^/
18.10.15 ;18.10.15 ;BU       ;
A243483 ;H ;BR, WG  ;64  ;F113 ;GR  ;DIS;DZ;H ;Hp ;19.04.16;28.04.16; 9       ^/
 ;  ; 1  ;   1  ;A306   ;19.04.16    ;09:50    ;13:30    ;TX ;NC;            ^/
18.10.15 ;18.10.15 ;BU  ;
    Fr1%
    il. Rg ud Tr a/b

我需要在每个A999999分配它。所以我创建了以下code来执行此操作:

$re = "/(\sA\d{6})/"; 
$result= preg_split($re , $str,-1,PREG_SET_ORDER);
print_r($result);

然而印刷的是:

Array
(
    [0] => A243503  ;H ;ZU, HS-JIM ;7;F122;VO ;A12 ;A2E;U;be;24.11.15 ;05.12.15 ;11^/
    ; ; 1 ;   1 ;A26 ;24.11.15 ;11:05;14:45;TL;F ;^/
    18.10.15 ;18.10.15 ;BU;
        BLABLABLABLA BLABLABLABLA BLABLABLABLA

    [1] =>  A243504
    [2] => ;F  ;BAS, R   56  ;FC12VOp ;A12;App 2E; ;ern;24.11.15 ;05.12.15;11 ^/
     ;  ; 1 ;2  ;A26;24.11.15  ;11:05 ;14:45 ;TiXL  ;FC  ;   ^/
    18.10.15 ;18.10.15 ;BU       ;

    [3] =>  A243483
    [4] =>  ;H ;BR, WG  ;64  ;F113 ;GR  ;DIS;DZ;H ;Hp ;19.04.16;28.04.16; 9       ^/
     ;  ; 1  ;   1  ;A306   ;19.04.16    ;09:50    ;13:30    ;TX ;NC;            ^/
    18.10.15 ;18.10.15 ;BU  ;
        Fr1%
        il. Rg ud Tr a/b
)

但我希望它像:

Array
(
    [0] => A243503  ;H ;ZU, HS-JIM ;7;F122;VO ;A12 ;A2E;U;be;24.11.15 ;05.12.15 ;11^/
    ; ; 1 ;   1 ;A26 ;24.11.15 ;11:05;14:45;TL;F ;^/
    18.10.15 ;18.10.15 ;BU;
        BLABLABLABLA BLABLABLABLA BLABLABLABLA

    [1] =>  A243504 ;F  ;BAS, R   56  ;FC12VOp ;A12;App 2E; ;ern;24.11.15 ;05.12.15;11 ^/
     ;  ; 1 ;2  ;A26;24.11.15  ;11:05 ;14:45 ;TiXL  ;FC  ;   ^/
    18.10.15 ;18.10.15 ;BU       ;

    [2] =>  A243483 ;H ;BR, WG  ;64  ;F113 ;GR  ;DIS;DZ;H ;Hp ;19.04.16;28.04.16; 9       ^/
     ;  ; 1  ;   1  ;A306   ;19.04.16    ;09:50    ;13:30    ;TX ;NC;            ^/
    18.10.15 ;18.10.15 ;BU  ;
        Fr1%
        il. Rg ud Tr a/b
)

我希望匹配的文本与其他文本一起使用..

2 个答案:

答案 0 :(得分:1)

使用这种模式:

~             # pattern delimiter
\s*           # trailing whitespaces of the previous occurrence (including newline)
(?=A[0-9]{6}) # lookahead: followed by "A" and 6 digits
~

细节:

np.maximum(np.sin(range(100)), np.zeros(100))

答案 1 :(得分:0)

以这种方式试试。 我不能自己测试,所以我不确定它是否有效:

stage.addEventListener(Event.ENTER_FRAME, levelTwo);    

public function levelTwo($event:Event) { // need to accept an event argument
    var found:Boolean = false;
    for each(var arr:Array in myMap)
    {
        if(arr.indexOf(10)!= -1) {
            found = true;
        }
    }

    if(!found)
    {
        trace("win");
    }
}