使用正则表达式提取字符串

时间:2013-07-16 09:02:41

标签: java regex

我有一个像:

的字符串
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);

1 个答案:

答案 0 :(得分:0)

我做到了

Pattern p=Pattern.compile("(^ITEM\\s.+?)^(?=ITEM|DATASOURCE)",Pattern.MULTILINE | Pattern.DOTALL);