RegEx用kesword分割匹配

问题描述 投票:0回答:1

我有这段文字:

     CTN1: CAIU3201968
     order No. 1900958
     palisade, all sides middle picked, G603
1000755   10     25       150     16 pcs/pallet    4 pallets      64,00 pce        77,25     4.944,00
     palisade, all sides middle picked, G603
1000753   10     25       100     20 pcs/pallet   16 pallets      320,00 pce       51,50    16.480,00
     CTN2: BSIU3070499
     order No. 1900958
     palisade, all sides middle picked, G603
1007780   10     25       125     18 pcs/pallet    4 pallets      72,00 pce        64,38     4.635,00
     palisade, all sides middle picked, G603
1000751   10     25          60   40 pcs/pallet    2 pallets      80,00 pce        30,90     2.472,00
     palisade, all sides middle picked, G603
1000752   10     25          80   24 pcs/pallet    5 pallets      120,00 pce       41,20     4.944,00
     palisade, all sides middle picked, G603
1000753   10     25       100     20 pcs/pallet    3 pallets      60,00 pce        51,50     3.090,00
     palisade, all sides middle picked, G603
1001526    8     20       100     36 pcs/pallet    5 pallets      180,00 pce       37,00     6.660,00
     CTN3: NYKU3708986
     order No. 1900958
     palisade, all sides middle picked, G603
1000751   10     25          60   40 pcs/pallet    9 pallets      360,00 pce       30,90    11.124,00
     palisade, all sides middle picked, G603
1002452   10     25          75   24 pcs/pallet   11 pallets      264,00 pce       38,63    10.197,00

我每个CTN需要一个RegEx匹配组,所以第一组是:

    CTN1: CAIU3201968
     order No. 1900958
     palisade, all sides middle picked, G603
    1000755   10     25       150     16 pcs/pallet    4 pallets      64,00 pce        77,25     4.944,00
     palisade, all sides middle picked, G603
    1000753   10     25       100     20 pcs/pallet   16 pallets      320,00 pce       51,50    16.480,00

第二组:

CTN2: BSIU3070499
     order No. 1900958
     palisade, all sides middle picked, G603
1007780   10     25       125     18 pcs/pallet    4 pallets      72,00 pce        64,38     4.635,00
     palisade, all sides middle picked, G603
1000751   10     25          60   40 pcs/pallet    2 pallets      80,00 pce        30,90     2.472,00
     palisade, all sides middle picked, G603
1000752   10     25          80   24 pcs/pallet    5 pallets      120,00 pce       41,20     4.944,00
     palisade, all sides middle picked, G603
1000753   10     25       100     20 pcs/pallet    3 pallets      60,00 pce        51,50     3.090,00
     palisade, all sides middle picked, G603
1001526    8     20       100     36 pcs/pallet    5 pallets      180,00 pce       37,00     6.660,00

依此类推。

我想尝试的是此正则表达式:

CTN\d{1,2}:((.|\n)*)CTN\d{1,2}:

但是有了这个,我只有一个分组,除了最后一组。

regex vb.net
1个回答
0
投票

尝试一下:

\s*CTN\d{1,2}:[\S\s]*?(?=\s+CTN|\Z)

https://regex101.com/r/ElfRn6/1

© www.soinside.com 2019 - 2024. All rights reserved.