2011-10-20 82 views
0

如何僅匹配確切的內聯代碼並匹配兩個if兩次,而不是一次匹配。php preg match with inline matches

http://regexr.com?2uvul

我想獲得導致與:

陣列( [0] => ASD [1] => ASD )

陣列( [0] => asdasd )

+0

這將是有益的這個站點的將來用戶,如果你想將上面的問題粘貼到你嘗試的示例代碼和表達式中。使用back-tick字符(在'〜'鍵上)引用文本或代碼或縮進​​代碼四個或更多空格,以便從文本的其餘部分設置它 –

回答

2

http://regexr.com?2uvuu - 使用表達式:

<!--\s+IF\s+([^\s]*)\s-->([^<]*)<!--\sENDIF\s--> 

編輯:

考慮,你要匹配的if語句「標籤」裏面有什麼可能有空格,稍慢的表現應該處理任何事情

/<!--\s+IF\s+(.*?)\s-->([^<]*)<!--\sENDIF\s-->/gixsm 

然後,如果您希望能夠捕捉到其他標籤(或字符:在「if語句」應該如下(在RegExr)內)結果中(如果該語句是「真」,你將要使用(再稍微慢一點)的表達(在RegExr):

/<!--\s+IF\s+(.*?)\s-->(.*?)<!--\sENDIF\s-->/gixsm 

編輯完

+0

<! - IF test == 3 - - > asd <! - ENDIF - >? –

+1

我很抱歉,但你的問題很不完整,我不知道你在問什麼,所以我想我給了一個不完整的答案。我不知道你的if語句中可能會出現什麼,因爲我不知道語法。我會再試一次! –

+0

嗨,對不起,我忘了提及這個語法​​,它的相當嵌套。感謝完美的代碼! :) –