Php preg_match帮助

时间:2009-11-19 01:03:54

标签: php preg-match

我正在尝试找到一个可以匹配的php preg_match

test1 test2 [...]但不是test1 test2 [...]

并将test2(...)作为输出返回$ match。

我试过

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

但它匹配两种情况并返回完整的句子。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

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

+后面注明一个或多个字母数字字符

,请注意[a-zA-Z0-9]

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

由于您的内容在[]左右,我已将.*更改为[^\]],因为正常表达式为贪婪,如果是test2[.....] test3[sadsdasdasdad],它会捕获直到结束,因为有]

另外请注意,因为你使用的是$它最终会匹配的东西,我不确定这是不是你打算做的。

您可以参考this作为参考。