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'

我想提取项目,然后CALCULATE分开,其他项目分开。例如 :

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 回答