2009-11-19 44 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作为参考。