首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找<h2></h2>之间出现的所有文本

查找<h2></h2>之间出现的所有文本
EN

Stack Overflow用户
提问于 2021-09-22 17:14:33
回答 1查看 30关注 0票数 0

我想从一个包含所有h2标题的html字符串中自动生成一个目录,因此需要将它们放入一个数组中。

我有一个$text字符串,里面有格式化的html:

代码语言:javascript
复制
<h2>heading 1</h2>
<p>something</p>
<h2>heading 2</h2>
<p>something</p>
<h2>heading 3</h2>
<p>something</p>

如何将h2中的所有标题提取到一个数组中?

我发现我需要正则表达式,也许是preg_match_all。

我试过了,但不起作用:

代码语言:javascript
复制
preg_match_all("<h2>(.*?)</h2>", $text, $found);
print_r($found);

感谢您对初学者的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-22 17:21:29

将您的Regex更改为

代码语言:javascript
复制
preg_match_all('#<h2.*?>(.*?)</h2>#i',$text, $found);

解释

代码语言:javascript
复制
<h2.*?> - ignore the classes/attributes in the tag if any
(.*?)   - capture everything
</h2>   - match end tag
i       - ignore case 

然后遍历数组并打印值

代码语言:javascript
复制
foreach ($found[1] as $a) 
  echo $a." ";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69288608

复制
相关文章

相似问题

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