-2

我有大量的 html 文本数据集,并且我经常发现标签<br>内的换行符是不必要的,有时甚至是多个换行符。<li>

例如:

<li>Some string here<br></li><br><li>Another string here<br><br></li><br>

我想删除这些<br>出现在标签之间<li></li>保留其他所有内容,包括标签<br>之外的内容。<li>上面的文本将变为:

<li>Some string here</li><br><li>Another string here</li><br>

使用 php 中的 preg_replace() (或 python 中的 re.sub() )执行此操作的正则表达式是什么?

4

2 回答 2

2

使用PHP Simple HTML DOM Parser您可以轻松实现这一点(就像 jQuery 一样)

include('simple_html_dom.php');
$html = str_get_html('<li>Some string here<br></li><br><li>Another string here<br><br></li><br>');
foreach($html->find('li br') as $br){
    $br->outertext='';
}
echo $html;

输出将是

<li>Some string here</li><br>
<li>Another string here</li><br>
于 2013-01-04T21:38:38.877 回答
0

替换(<br>)+</li>with</li>至少会处理 li 内容末尾的换行符,这对您来说可能已经足够了。否则,由于<li>s 有时包含其他<li>s,您面前可能有一项非常困难的任务,无法用 regexp 轻松解决(而且可能根本无法单独使用 regexp 解决),请参阅此问题的接受答案。

于 2013-01-04T21:28:29.083 回答