分割字符串时保留特定的 html 标签
P粉841870942
P粉841870942 2024-03-31 18:12:42
[HTML讨论组]

我需要按特定数量的标签分割字符串 (<li>, <lu> ...)。我想出了正则表达式

pattern = <li>|<ul>|<ol>|<li>|<dl>|<dt>|<dd>|<h1>|<h2>| <h3>|<h4>|<h5>|<h6>re.split

基本上它可以完成工作

test_string = '<p> Some text some text some text. </p> <p> Another text another text </p>. <li> some list </li>. <ul> another list </ul>'
res = re.search(test_string, pattern) 
-> `['<p> Some text some text some text. </p> <p> Another text another text </p>. ', ' some list </li>. ', ' another list </ul>']`

但我想捕获开始和结束标签并将标签保留在分割文本中。类似的东西

['<p> Some text some text some text. </p> <p> Another text another text </p>. ', '<li> some list </li>. ', '<ul>another list </ul>']`

P粉841870942
P粉841870942

全部回复(1)
P粉787806024

回答您的具体问题:

[^

并且匹配而不是拆分。

\1 指的是开始标记中捕获的内容。

类似于:

for match in re.finditer(r"[^", subject, re.DOTALL):

但是,在大多数真实情况下,这不足以处理 HTML,您应该考虑 DOM 解析器。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号