我有以下 EDI 檔案,需要過濾元素 LOC 11 而不是 LOC 7,我需要它們之間的所有段,即 LOC 段重復但它們之間的段不重復。
目前我的正則運算式看起來像LOC[^L]*(?:L(?!OC)[^L]*)*,但我得到 4 個結果,因為它也過濾了 loc 7 元素。
我只需要2個結果。你可以幫幫我嗎?
> NAD ST 14::92 Test' LOC 11 KOD23277::92' LOC 7 D77::92:Test' LIN 1
> test AP:IN'IMD F 12::272:K
> RIPPsadasdRIEM'RFF ON:EN10514492'RFF AAN:501'
> DTM 171:20220309:102'RFF AIF:500'DTM 171:20220305:102'CTA SC 12414:test,
> test'COM [email protected]:EM'
> COM ? 49-561-490-4173:TE'COM ? 49-561-490-84173:FX' QTY 83:1000:PCE'
> QTY 70:66850:PCE'DTM 51:20080101:102'
> QTY 72:0:PCE'DTM 52:20080101:102'
> QTY 194:1000:PCE'DTM 50:20220224:102'
> RFF AAU:2143276'DTM 171:20220218:102'
> QTY 194:1000:PCE'DTM 50:20220202:102'
> RFF AAU:2138944'DTM 171:20220131:102'
> QTY 194:1000:PCE'DTM 50:20220105:102'
> RFF AAU:2138943'DTM 171:20220103:102' SCC 24'
> QTY 113:1000:PCE'DTM 2:20220412:102'
> QTY 113:1000:PCE'DTM 2:20220503:102'
> QTY 113:1000:PCE'DTM 64:20220530:102'DTM 63:20220605:102'
> QTY 113:1000:PCE'DTM 64:20220620:102'DTM 63:20220626:102'
> QTY 113:1000:PCE'DTM 64:20220711:102'DTM 63:20220717:102'
> QTY 113:1000:PCE'DTM 64:20220801:102'DTM 63:20220807:102' GEI 3 37'
>
> NAD ST 14::92 test' LOC 11 KOD823226::92' LOC 7 D86::92:Test' LIN 2
> test H:IN'IMD F 12::272:K
> RIPPRIEM'RFF ON:EN10662318'RFF AAN:266'DTM 171:20220309:102'
> RFF AIF:265'DTM 171:20220305:102'CTA SC 12414:test,
> test'COM test.test@test.de:EM'
> COM ? 49-561-490-4173:TE'COM ? 49-561-490-84173:FX' QTY 83:200:PCE'
> QTY 70:14319:PCE'DTM 51:20100101:102'
> QTY 72:0:PCE'DTM 52:20100101:102' QTY 194:200:PCE'DTM 50:20220126:102'
> RFF AAU:2146871'DTM 171:20220121:102'
> QTY 194:200:PCE'DTM 50:20211210:102'RFF AAU:2146914'DTM 171:20211209:102' QTY 194:200:PCE'DTM 50:20211129:102'RFF AAU:2139927'DTM 171:20211124:102'SCC 24'
> QTY 113:200:PCE'DTM 2:20220503:102'
> QTY 113:200:PCE'DTM 64:20220606:102'DTM 63:20220612:102'
> QTY 113:200:PCE'DTM 64:20220718:102'DTM 63:20220724:102'
> QTY 113:200:PCE'DTM 64:20220829:102'DTM 63:20220904:102'
> QTY 113:200:PCE'DTM 64:20221010:102'DTM 63:20221016:102'
>
> UNT 142 1'UNZ 1 2756'
uj5u.com熱心網友回復:
您可以使用
LOC\ 11[^L]*(?:L(?!OC\ 11)[^L]*)*
LOC\ 11[\w\W]*?(?=LOC\ 11|$)
請參閱正則運算式演示。
詳情:
LOC\ 11-LOC 11字串[^L]*(?:L(?!OC\ 11)[^L]*)*- 直到第一次出現LOC 11子字串的任何文本(使用展開回圈原則)。
盡管使用上述兩種模式得到的結果是相同的,但第一種模式要快得多,前提是沒有太多L的 s 沒有跟在后面 11。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/460601.html
標籤:正则表达式
