<!--:en-->Motodays 2014, 6.-9. of March<!--:--><!--:it-->Motodays 2014, 6-9 Marzo<!--:-->
这是我想要匹配的字符串。我想要匹配两个类似HTML的评论标记中的内容。
所以我尝试了:<!--:(..)-->(.+)<!--:-->
和这个正则表达式的一些额外的派生函数,但是找不到返回预期结果的解决方案。我还尝试了(|)
,它检查是否存在两个这样的标记,但结果不可靠,因为它还需要管理3个或更多匹配。
这是来自preg_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
)
这就是我想要实现的:
array(
0 => <!--:en-->Motodays 2014, 6.-9. of March<!--:--><!--:it-->Motodays 2014, 6-9 Marzo<!--:-->
1 => en
2 => Motodays 2014, 6.-9. of March
3 => it
4 => Motodays 2014, 6-9 Marzo
)
编辑:答案是建议使用preg_match_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
)
)
发布于 2019-04-12 10:29:07
(.+)
很贪婪,直到最后一场比赛。我建议添加一个?
,使其非贪婪。我也会使用preg_match_all
。
我认为:
<!--:([a-z]{2})-->(.*?)<!--:-->
会达到你想要的效果。
https://stackoverflow.com/questions/55643584
复制相似问题