2016-09-23 22 views
0

之間的所有文本匹配這是我的文字正則表達式 - 如何給定詞

FUNCTION 1 
    Some text 
FUNCTION 2 
    Some text 
FUNCTION 3 
    Some text 

我想下面的比賽

1場

FUNCTION 1 
    Some text 

2場

FUNCTION 2 
    Some text 

第3場比賽

FUNCTION 3 
    Some text 

,我拿出這麼遠的模式是

FUNCTION[\s\S]*FUNCTION 

Online demo link

+1

'FUNCTION [\ s \ S] *?(?= \ nFUNCTION)' –

+1

哪種編程語言? – Jan

回答

1

您可以使用正則表達式tempered greedy token

FUNCTION(?:(?!FUNCTION)[\s\S])* 

regex demo

(?:(?!FUNCTION)[\s\S])*是與任何未啓動FUNCTION字符序列的字符([\s\S])匹配的標記。基本上,就最終結果而言,它與FUNCTION\[\S\s\]*?(?=FUNCTION|$)類似,只是將惰性匹配轉換爲與下一個序列匹配的構造,而不要求其出現在末端,因此我們可以省略|$替代方案。

如果單詞FUNCTION與製表符/空格包圍一個單獨的線出現,你可能會展開它

^[ \t]*FUNCTION[ \t]*(?:\r?\n(?![ \t]*FUNCTION[ \t]*$).*)* 

this regex demo(注意,使用了m多改性劑在這裏)。

+1

謝謝。這正是我所尋找的 –