Php预匹配帮助
我试图找到一个php preg_匹配,可以匹配 test1 test2[…]但不是test1 test2[…] 并将test2(…)作为$match的输出返回 我试过了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[...]",
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[…]”是字符串还是数组?