繁体   English   中英

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

[英]Extract a string with Regular Expression

我有一个像这样的字符串:

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);

好吧,我做到了

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM