Php 在一行中匹配多个封装字符串

Php 在一行中匹配多个封装字符串,php,regex,Php,Regex,Motodays 2014,6-9。2014年3月6日至9日Marzo 这是我要匹配的字符串。我想匹配2个类似HTML的注释标记中的内容 所以我尝试了:(.+)和这个正则表达式的一些附加派生,但是找不到一个返回预期结果的解决方案。我也试过了 (|)检查是否存在2个这样的标记,但结果不可靠,因为它还需要管理3个或更多匹配项 这是来自preg\u match的结果: array( 0 => <!--:en-->Motodays 2014, 6.-9. of March<!--

Motodays 2014,6-9。2014年3月6日至9日Marzo
这是我要匹配的字符串。我想匹配2个类似HTML的注释标记中的内容

所以我尝试了:
(.+)
和这个正则表达式的一些附加派生,但是找不到一个返回预期结果的解决方案。我也试过了
(|)
检查是否存在2个这样的标记,但结果不可靠,因为它还需要管理3个或更多匹配项

这是来自
preg\u match
的结果:

array(
0 => <!--:en-->Motodays 2014, 6.-9. of March<!--:--><!--:it-->Motodays 2014, 6-9 Marzo<!--:-->
1 => en
2 => Motodays 2014, 6.-9. of March<!--:--><!--:it-->Motodays 2014, 6-9 Marzo
)
(.+)
贪婪,直到最后一次匹配。我建议添加一个
,使其不贪婪。我也会使用
preg\u match\u all

我认为:

<!--:([a-z]{2})-->(.*?)<!--:-->
(*)
你会得到你想要的


preg\u match\u all-将此
(.+)
更改为
([^
array(
0=>array(
  0=><!--:en-->Motodays 2014, 6.-9. of March<!--:-->
  1=><!--:it-->Motodays 2014, 6-9 Marzo<!--:-->
)
1=>array(
  0=>en
  1=>it
)
2=>array(
  0=>Motodays 2014, 6.-9. of March
  1=>Motodays 2014, 6-9 Marzo
)
)
<!--:([a-z]{2})-->(.*?)<!--:-->