使用preg_match在单个字符串/行中进行多个匹配

时间:2014-04-14 19:54:38

标签: php regex preg-match

我正在尝试匹配字符串中所有出现的{$ anything}。

示例字符串为:

Hello {$test} World

适用于:

^.*\{\$(.*?)\}.*$

preg_match("/^.*\{\$(.*?)\}.*$/", $input_line, $output_array);

但是我如何循环这个以便它检索所有的匹配,例如,如果我有:

Hello {$test} World {$done}

它只检索数组中的最后一个匹配:

Array
(
    [0] => Hello {$test} World {$done}
    [1] => done
)

1 个答案:

答案 0 :(得分:3)

preg_match_all与正确的正则表达式一起使用以获取所有匹配项:{$...} pattern

preg_match_all("/\{\$([^}]*)\}/", $input_line, $output_array);

然后迭代(处理)$output_array[1]