2011-07-26 64 views
0

我需要在PHP中創建一個正則表達式,將確定在一段文字的下列標記:PHP正則表達式來識別多個令牌

[video:1] 
[video:2] 

我正在使用的代碼是

preg_match("/\[video:[12]{1}\]/", $text, $matches); 

與'[視頻:'然後']'後可以有1或2的一個字符的想法。我遇到的問題是如果文本中有兩個標記,它將不會識別第二個標記。如果它是第一個,它將識別任何一個,但如果兩個都在文本中,則不是第二個。

如何識別我的文本段中的兩個令牌?

謝謝。

回答

4

您需要使用preg_match_all()才能進行全局搜索和捕獲。

還需確保在需要匹配文字字符時正確地轉義正則表達式語法。

/\[video:[12]\]/ 

注:我也去掉了量詞,因爲它是不必要的,因爲你只是一個匹配或12

+0

我不確定你是否理解你對轉義的引用,因爲你上面提到的符合我的要求(沒有刪除{1}量詞),但是這有效。謝謝。 – wonder95

+0

不客氣。你原來的帖子並沒有逃脫。 ** Felix Kling **在我回答後添加了它們。 –

+0

僅供參考,反斜槓在那裏。在Felix應用代碼格式之前,它們不可見。這種事情就是爲什麼我通常會在我嘗試回答它之前發起一個問題的編輯,以確保我看到作者希望我看到的內容。 –