PHP:删除过多的 <br> 标签

标签 php regex

我有一些“不干净”的 html 字符串需要清理。

我想用 2 个 html 换行符替换连续的“超过 2 个”html 换行符。

所以下面的字符串:

$string = 'ytefey soeije hesouhodeseojedowe<br><br>
 <br>ioueshe oiwj<br /><br />oijeewje<br /><br> <br>  <br>';

最终应该是这样的:

$string = 'ytefey soeije hesouhodeseojedowe<br><br>
ioueshe oiwj<br /><br />oijeewje<br><br>   ';

到目前为止我得到了这个:

$string = preg_replace('#(<br>|<br />){2,}#i', '<br><br>', $string);

但它不考虑换行符和空格。

最佳答案

您可以使用 preg_replace() 用一个简单的正则表达式:

/(<br>\s*|<br \/>\s*){3,}/i

基本上它要么匹配 <br><br /> ( (<br>|<br \/>) ) 前面有零个或多个空格 ( \s* ) 至少 3 次或更多次 ( {3,} )。

$string = preg_replace("/(<br>\s*|<br \/>\s*){3,}/i", "<br><br>", $string);

关于PHP:删除过多的 <br> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503075/

相关文章:

php - mysql_fetch_array() 的基本 PHP/MySQL 错误

javascript - PHP (web) 导出到 power point (pptx)

php - 正则表达式在 PHP 中的 2 个标签之间获取文本

regex - 测试正则表达式的推荐方法?

regex - flex如何匹配行 anchor 的开头?

php - 寻找适合我们案例的 NoSQL 数据库

php - 在目录 .htaccess 中不给任何人访问权限

php - 始终如一地将随机字符串更改为颜色

python - 如何使用正则表达式删除python字符串中的特定模式?

regex - 如何取消捕获正则表达式中的字符串?