
正则表达式匹配:避免过度匹配
在提取HTML标签内的标题信息时,避免过度匹配至关重要。 例如,如果目标文本包含以下标签:
李明:
tittle:
立即学习“前端免费学习笔记(深入)”;
my brief:xxxxx
我们希望仅提取tittle:及其后的内容,直到下一个
标签。 错误的正则表达式,例如/
[ss]+ ittle:[ss]+//,由于[ss]+匹配任意字符(包括空格和换行符),会导致匹配范围过大。
更精准的匹配方法是避免使用[ss]+,而是使用[^
改进后的正则表达式示例:
$str = '<p>李明:</p><p>tittle: </p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p><p>my brief:xxxxx</p><p>';
preg_match('/<p>([^<]+tittle:[^<]+)</p>/', $str, $m);
var_dump($m);
登录后复制
此代码片段将精准匹配
标签内包含tittle:的内容,并排除前后多余的标签和字符。 请注意,这仍然依赖于目标文本的结构。 对于更复杂的HTML结构,建议使用DOM解析器进行处理,以确保更可靠的匹配结果。
以上就是如何精准匹配HTML标签内的标题信息?的详细内容,更多请关注php中文网其它相关文章!