2015-02-09 55 views
2

與這一個掙扎....這是我的數據,我想從第一數據組中的所有選擇,直到下一個正則表達式匹配新的生產線,直到

原始

data-group object name 
1234 
5677 
7890 
12356 
data-group object name2 

所需的輸出

data-group object name 
1234 
5677 
7890 
12356 

我目前正在研究積極向前看,並都拿出了下面的表達式

(?=data-group)data-group 

這個選項。

data-group 
data-group 

我該如何獲得它匹配新行之間的任何內容。

回答

1

您需要使用DOTAll修飾符(?s)才能使點匹配換行符。

(?s)\bdata-group\b.*?(?=\bdata-group\b) 

DEMO

OR

這將不打印在最後一個額外的換行符。

(?s)\bdata-group\b.*?(?=\ndata-group\b) 

使用[\s\S]*?,而不是.*?如果你的郎將不支持s修正。 [\s\S]*?非貪婪地匹配零次或多次任何空格或非空格字符。

\bdata-group\b[\s\S]*?(?=\ndata-group\b) 

DEMO