我在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\}\}#
我对正则表达式相当新,所以我知道它可能很简单。有人有什么想法?提前谢谢。
答案 0 :(得分:3)
+
表示“一次或多次重复”。
“零次或多次重复”需要*
:
preg_match_all('#\{\{beginning_of_string(.*?)\}\}#', $content, $string)