首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一行中匹配多个封闭字符串

在一行中匹配多个封闭字符串
EN

Stack Overflow用户
提问于 2019-04-12 10:19:54
回答 1查看 30关注 0票数 0

<!--:en-->Motodays 2014, 6.-9. of March<!--:--><!--:it-->Motodays 2014, 6-9 Marzo<!--:-->这是我想要匹配的字符串。我想要匹配两个类似HTML的评论标记中的内容。

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

这是来自preg_match的结果

代码语言:javascript
运行
复制
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
)

这就是我想要实现的:

代码语言:javascript
运行
复制
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();,结果数组略有不同,但其形式比其他形式更实用。

代码语言:javascript
运行
复制
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
)
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-12 10:29:07

(.+)很贪婪,直到最后一场比赛。我建议添加一个?,使其非贪婪。我也会使用preg_match_all

我认为:

代码语言:javascript
运行
复制
<!--:([a-z]{2})-->(.*?)<!--:-->

会达到你想要的效果。

https://regex101.com/r/tMN6km/1/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55643584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档