PHP preg_replace不匹配多个空格
所以 我有一些遗留的HTML,我正试图使用正则表达式来去除其中的积垢。差不多PHP preg_replace不匹配多个空格,php,regex,preg-replace,Php,Regex,Preg Replace,所以 我有一些遗留的HTML,我正试图使用正则表达式来去除其中的积垢。差不多 <div class="al-list-head"><span>Another List</span></p> <h3>Destinations</h3> </div> 另一个列表 目的地 HTML中的另一个变体可能是 <div class="al-list-head"> <p><span>Ano
<div class="al-list-head"><span>Another List</span></p>
<h3>Destinations</h3>
</div>
另一个列表
目的地
HTML中的另一个变体可能是
<div class="al-list-head">
<p><span>Another List</span></p>
<h3>Lounge</h3>
</div>
另一份名单
休息室
(CMS有时会添加冗余的
)
我的正则表达式适用于大部分(第二个示例),但不适用于第一个示例。我尝试了很多字符类,但似乎无法匹配第一个示例中最后一个
和最后一个
之间的差距
我的正则表达式是
$html = preg_replace( '/<div class=\"al-list-head\">[\s](<p>?)(<span>Another\ List<\/span>)(<\/p>?)[\s]<h3>([^<\/>]*)<\/h3>[\s]<\/div>/is', '<h3 class="al-head">$4</h3>', $html );
$html=preg\u replace('/[\s](?)(另一个列表)(?)[\s]([^]*)[\s]/is','$4',$html);
在
之后,我尝试了[\s]
,([\s]?)
,([\s\b\n\r]*)
,甚至连(.*)
都没有运气
有什么建议吗
我用它来迭代和测试,希望有人也能发现它有用。使用\s*
$html = preg_replace( '/<div class=\"al-list-head\">\s*(<p>?)(<span>Another\ List<\/span>)(<\/p>?)\s*<h3>([^<\/>]*)<\/h3>\s*<\/div>/is', '<h3 class="al-head">$4</h3>', $html );
$html=preg\u replace('/\s*()(另一个列表)(?)\s*([^]*)\s*/is','$4',$html);
您可以尝试下面的正则表达式,它可以适用于这两个示例
/<div\s*class=\"al-list-head\">\s*(<p>)?(<span>Another\s*List<\/span>)(<\/p>)?\s*<h3>([^<\/>]*)<\/h3>\s<\/div>/img
/\s*()?(另一个\s*列表)(?\s*([^]*)\s/img
替换字符串:
<h3 class="al-head">$4</h3>
4美元
尝试添加
m
修饰符:您的正则表达式以/is
结尾,尝试/ism
@dangvy您的预期输出是什么?您的命令对我有效