1

我正在使用以下字符串将所有 PHP 中的 preg 匹配放在一起:

{{beginning_of_string|:|optional_param|:|http_link}} 
{{beginning_of_string|:|optional_param|:|text}} 
{{beginning_of_string}}

所有这三种可能性都可以出现在整个字符串中,或​​者仅出现一次。到目前为止,这是我的正则表达式:

preg_match_all('#\{\{beginning_of_string(.+?)\}\}#', $content, $string)

到目前为止,这只匹配字符串的前两次出现,而不是最后一次出现。此正则表达式仅匹配最后一次出现:

#\{\{beginning_of_string\}\}#

我对正则表达式相当陌生,所以我知道这可能很简单。有人有什么想法吗?提前致谢。

4

1 回答 1

3

+意思是“一个或多个重复”。

您需要*“零次或多次重复”:

preg_match_all('#\{\{beginning_of_string(.*?)\}\}#', $content, $string)
于 2013-04-05T20:07:00.290 回答