求解正则匹配HTML标签

cnlongxi 2010-08-06 09:51:09
内容如下

..<br><br><br>....<br><br>...<hr><hr>

问大家:如何用正则替换为

..<br>....<br>...<hr>

就是将连续重复的标签替换成1个
...全文
59 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnlongxi 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xuzuning 的回复:]
$s = "..<br><br><br>....<br><br>...<hr><hr>x<br><hr><em>";

echo preg_replace('/(<.+>)\\1+/', '$1', $s);//..<br>....<br>...<hr>x<br><hr><em>
[/Quote]

也感谢。

CSDN因你们而充满人气。
xuzuning 2010-08-06
  • 打赏
  • 举报
回复
$s = "..<br><br><br>....<br><br>...<hr><hr>x<br><hr><em>";

echo preg_replace('/(<.+>)\\1+/', '$1', $s);//..<br>....<br>...<hr>x<br><hr><em>
cnlongxi 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cunningboy 的回复:]
PHP code
preg_replace("/(<[^>]+>)(\\1)+/is", "\\1", $HTMLBODY);
[/Quote]

十分感谢。
我在你第一个答案的基础上也写出了一个。

/(<[^>]+>)\1+/is


谢谢了 ☺
CunningBoy 2010-08-06
  • 打赏
  • 举报
回复
preg_replace("/(<[^>]+>)(\\1)+/is", "\\1", $HTMLBODY);
cnlongxi 2010-08-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cunningboy 的回复:]
PHP code
preg_replace("/(<[^>]+>)+/is", "\\1", $HTMLBODY);
[/Quote]

谢字当头。

这个正则也会匹配 <br><hr><em>

我只想匹配连续重复
CunningBoy 2010-08-06
  • 打赏
  • 举报
回复
preg_replace("/(<[^>]+>)+/is", "\\1", $HTMLBODY);

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧