
解决正则表达式从 html 片段提取多行文本仅捕获最后一行的问题
原始问题:
尝试使用正则表达式从 html 片段中提取文本,目标文本可能有多行,但正则表达式只匹配并捕获了最后一行。如何解决这种问题?
给定的正则表达式:
立即学习“前端免费学习笔记(深入)”;
/^(?:<[pb]>)+((?:\w(\s)?)+:)(?:<\/[pb]>)+\n?(?:<p>((?:\w+\s*[,.:;()]?\s*)+)<\/p>\n?)+$/gm
回答:
解决该问题的方法有两个:
正则表达式不适合匹配 html 这种结构严格且高度兼容的文本。推荐使用现成的 dom 树工具来解析 html 并提取文本。
如果一定要使用正则表达式,请注意,匹配到的中间组并不会自动转换成数组。需要使用额外的代码自行分解中间组以获得预期的结果。
以上就是正则表达式匹配HTML多行文本为何只捕获最后一行?的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号