2016-05-31 51 views
2

前,用數字或單詞的最後一行匹配我有一個純文本表格如下:正則表達式來空行

A lot of text and various tables which can all be different 

SI Table - Total 
Total 

Heartburn 0.0 
Regurg 14.3 
ChestP 25.0 
Cough n/a 
Belch n/a 
Other n/a 
Vomiting n/a 

some other stuff which can include 443.66 or 332 numbers 

但是這也可能是

SI Table - Total 
    Total 
Cough n/a 
Heartburn 0.0 
Regurg 14.3 
Chest Pain 25.0 
Belch n/a 
Other n/a 
CHest Pain 0.34 

從樣品的預期輸出1因此將是

SI Table - Total 
    Total 

Heartburn 0.0 
Regurg 14.3 
ChestP 25.0 
Cough n/a 
Belch n/a 
Other n/a 
Vomiting n/a 

我想從SI表中提取一個字符串作爲最後一個症狀的值om在同一張表中。

唯一的模式是最後一個症狀,值總是跟着一個空行,但之後可以有任何東西 - 包括一個非常相似的表。我試過

Pattern SAPDay2_pattern = Pattern.compile("SAP Table - Day1 .*(\\d+\\.\\d+|n\\/a)\\n\\n",Pattern.DOTALL); 

但它不起作用。有人可以幫忙嗎?

+1

什麼是'SAP表 - Day1'?您應該使用多個表格顯示更完整的輸入樣本。還包括您的預期匹配。 – anubhava

+0

您的預期產出是? –

回答

2

你可以試試這個正則表達式:

SI Table *- *Total\s+Total\s*(?:\n[A-Za-z]+\s+(?:\d+(?:\.\d+)?|n/a))+ 

RegEx Demo