首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用1次运行识别2组“匹配”?

用1次运行识别2组“匹配”?
EN

Stack Overflow用户
提问于 2011-04-21 02:05:57
回答 4查看 89关注 0票数 0

我想在文本中得到一个所有打开和关闭的html标签。

我指的是这个模式:<[a-z]+></[a-z]+> (不考虑带数字或任何属性的标签或任何xhtml自封闭标签)

我的意思是使用2个preg_match_all来获取它们:

代码语言:javascript
复制
preg_match_all( '#<([a-z]+)>#i' , $html, $start, PREG_OFFSET_CAPTURE );
preg_match_all( '#<\/([a-z]+)>#i' , $html, $end, PREG_OFFSET_CAPTURE );

第一个将把所有标记放在数组$start中,第二个放在$end中。

有没有办法只用一个preg_match_all实例就能得到em?(我认为只有1个preg的函数会快得多)

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-21 02:09:50

代码语言:javascript
复制
preg_match_all( '#</?([a-z]+)>#i' , $html, $start, PREG_OFFSET_CAPTURE );

将同时捕获开始标记和结束标记。

票数 2
EN

Stack Overflow用户

发布于 2011-04-21 02:09:35

考虑一下

代码语言:javascript
复制
preg_match_all( '#</?([a-z]+)>#i' , $html, $end, PREG_OFFSET_CAPTURE );

意味着/可能在那里,也可能不在那里。

票数 1
EN

Stack Overflow用户

发布于 2011-04-21 02:12:28

请阅读有关使用正则表达式解析超文本标记语言的this answer。这是堆栈溢出历史上评分最高的答案。然后阅读该帖子中的一些其他答案,以获得执行此操作的适当工具。

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

https://stackoverflow.com/questions/5734671

复制
相关文章

相似问题

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