【发布时间】:2016-09-30 09:38:34
【问题描述】:
我正在尝试从 HTML 字符串中获取文本字符串。 我想只捕获标签之间的文本并跳过任何空标签。
我的尝试是当前的尝试,可以在这里找到:
https://regex101.com/r/3Ujmw6/2
- 我不能使用\w,因为我需要捕获汉字
- 我只想要文本而不想要很多空结果
我试过了:
/>(\X+?)</g
//I will fail on nested tags, it capture the first nested tag
<p><strong>blablab</strong></p>
还有这个:
/>(\X*?)</g
//Finds me all the string, but also includes loads of empty strings
//for adjacent tags ><
有没有办法从\X 中排除
【问题讨论】:
-
我很确定
\w支持中文字符,如果您使用的是 utf-8 ...不过我可能是错的。即便如此,您也不应该真的尝试使用 RegExp 解析 HTML - 它是适合这项工作的错误工具 - 改用DOMDocument()之类的东西。 -
我无法让它与 \w 一起使用,除非它是我正在使用的正则表达式站点的限制。感谢 domcrawler 的建议,没有考虑使用它来抓取文本节点。转向该解决方案。
-
愿此功能
strip_tags()对您有所帮助。
标签: php regex utf-8 preg-match