0

私は次のような文字列を持っています:

ITEM 'SALES_ORDER_COMPANY'

ITEM 'SALES_ORDER_NUMBER'

ITEM 'SALES_ORDER_TYPE' 'SALES_ORDER_TYPE'

ITEM 'ORIGINATING_SYSTEM'

ITEM 'BATCH_DT' 'BATCH_DT'
CALCULATE 'some text here'

ITEM 'INVOICE_DT' 'INVOICE_DT'
CALCULATE 'some text here'

CALCULATEItems に続いて別の項目を抽出し、他の項目を別の項目に抽出したいと考えています。例えば ​​:

extract 1 (ITEM 'BATCH_DT' 'BATCH_DT'
           CALCULATE 'some text here')
extract 2 (ITEM 'INVOICE_DT' 'INVOICE_DT'
           CALCULATE 'some text here')
extract3  (ITEM 'SALES_ORDER_COMPANY')
extract4  (ITEM 'SALES_ORDER_NUMBER') ...

私の考えは、最初に計算が続くアイテムを抽出し、それらを "" に置き換えてから、他のアイテムを抽出することです。そのため、このパターンを使用しましたが、うまくいきません

Pattern p=Pattern.compile("^ITEM\\s'.*?'^CALCULATE'.*?'", Pattern.MULTILINE | Pattern.DOTALL);
4

1 に答える 1

0

まあやった

Pattern p=Pattern.compile("(^ITEM\\s.+?)^(?=ITEM|DATASOURCE)",Pattern.MULTILINE | Pattern.DOTALL);
于 2013-07-16T09:55:34.840 に答える