使用preg_match查找括号之间的所有文本

时间:2015-03-27 16:14:21

标签: php regex preg-match

我正在尝试在文档中搜索标记,以便稍后替换它们。

我正在使用preg_match,但遇到了一些困难。

preg_match('/\[.*\]/', $haystack, $matches);

搜索以下文字

[TODAY_DATE]

回复:付款需求

[地址] [ADDRESS_LINE_2] ...等

print_r($matches);

返回

Array ( [0] => [TODAY_DATE] )

如何调整我的正则表达式以返回所有匹配项?

1 个答案:

答案 0 :(得分:4)

使用preg_match_all。顾名思义,它不止一次匹配。

preg_match_all('/\[.*?\]/', $haystack, $matches);
var_dump($matches);

也使用不情愿的量词.*?而不是贪婪的量词。