Php预匹配帮助

Php预匹配帮助,php,preg-match,Php,Preg Match,我试图找到一个php preg_匹配,可以匹配 test1 test2[…]但不是test1 test2[…] 并将test2(…)作为$match的输出返回 我试过了 preg_match('/^[a-zA-Z0-9][\[](.*)[\]]$/i',"test1 test2[...]", $matches); 但它匹配这两种情况并返回完整的句子 谢谢你的帮助 preg_match('/([a-zA-Z0-9]+[\[][^\]]+[\]])$/i',"test1 test2[...]",

我试图找到一个php preg_匹配,可以匹配

test1 test2[…]但不是test1 test2[…]

并将test2(…)作为$match的输出返回

我试过了

preg_match('/^[a-zA-Z0-9][\[](.*)[\]]$/i',"test1 test2[...]", $matches);
但它匹配这两种情况并返回完整的句子

谢谢你的帮助

preg_match('/([a-zA-Z0-9]+[\[][^\]]+[\]])$/i',"test1 test2[...]", $matches);
请注意
+
后面的
[a-zA-Z0-9]
表示一个或多个字母数字字符

整个表达式周围的
将允许您捕获整个表达式

由于您的内容在
[]
附近,我已将
*
更改为
[^\]]
,因为正则表达式是贪婪的
test2[…]test3[sadsdad]
的情况下,它将捕获到最后,因为存在
]

另外请注意,由于您使用的是
$
,它最终将始终匹配所有内容,因此我不确定您是否打算这样做


您可以查看以供参考。

请查看有关示例的更多详细信息!“test1 test2[…]而不是test1 test2[…]”是字符串还是数组?