2009-11-19 43 views
0

我試圖找到一個PHP的preg_match可以匹配的PHP的preg_match幫助

TEST1 TEST2 [...]但不TEST1 TEST2 [...]

,並返回test2的(...)爲輸出爲$匹配。

我試圖

preg_match('/^[a-zA-Z0-9][\[](.*)[\]]$/i',"test1 test2[...]", $matches); 

但是,這兩種情況相匹配,並返回完整的句子。

任何幫助表示讚賞。

+2

請更詳細的示例! – powtac 2009-11-19 01:08:23

+0

是「test1 test2 [...]但不是test1 test2 [...]」一個字符串或數組? – powtac 2009-11-19 01:15:30

回答

2
preg_match('/([a-zA-Z0-9]+[\[][^\]]+[\]])$/i',"test1 test2[...]", $matches); 

通知+[a-zA-Z0-9]它說一個或多個字母數字字符

()圍繞整個表達式將允許你趕上整個表達式。

因爲你的內容是圍繞[]我已經改變.*[^\]]因爲正則表達式是貪婪的test2[.....] test3[sadsdasdasdad]情況下,將捕捉到年底,因爲有一個]

另外請注意,因爲您使用$它總是會匹配最終的東西,我不確定是否您打算這麼做。

你可以看到this作爲參考。