【发布时间】:2020-10-05 09:50:59
【问题描述】:
如何使用 php 中的 regex 和 preg_replace 将任何给定 HTML 元素内的所有多个空格转换为单个空格?
例如:<div class="myClass" jsaction="UjQMac:.CLIENT" data-id="3739" >Edit</div>
已清理:<div class="myClass" jsaction="UjQMac" data-id="3739">Edit</div> 已删除所有多个空格,仅保留单个空格。此外, > 被替换为 >
我一直在尝试使用这个正则表达式 \<(\s+)\>,但没有成功。你能帮忙吗?
编辑:
下面答案中的正则表达式(?:(\s{2,})|(\s>)) 工作正常,但仅在< 和> 之间不匹配
【问题讨论】:
-
不应使用正则表达式。使用 HTML DOM 解析器
-
@anubhava 虽然我同意你的观点,但当人们尝试使用 RegEx 解析 HTML 时,我认为这种情况对于 RegEx 的使用是安全的。或者也许我错过了什么
-
@Cid 考虑这个 html
<div title="3 > 2" class="myClass" jsaction="UjQMac" data-id="3739">Edit</div>以及这可能如何使正则表达式解决方案复杂化。 -
好点 @WesleySmith 我没有意识到 OP 想要匹配标签
标签: php regex preg-replace