如何用正则表达式移除HTML标签中`<`和`/`后的空格?
解决方案
可以用两个正则替换精准处理你的需求:
移除
<后的所有空格- 正则匹配:
(<)\s+ - 替换为:
$1
- 正则匹配:
移除
/后的所有空格- 正则匹配:
(/)\s+ - 替换为:
$1
- 正则匹配:
效果验证
针对你的输入示例:
输入代码:
< lesson id="024AC57B0CA72ADE" classids="5B111F8CD42D0943" / >
经过两次替换后,得到期望输出:
<lesson id="024AC57B0CA72ADE" classids="5B111F8CD42D0943" />
同时满足你提到的边界情况:
- 合法的
</lesson >不会被修改(因为/后无空格) - 不合法的
</ lesson>会被修正为</lesson>(/后的空格被移除)
原正则的问题
你之前用的\s*< |\/ \s*有两个明显缺陷:
- 仅匹配
<后面的单个空格,无法处理多个连续空格的场景 - 匹配逻辑没有精准保留
<和/本身,容易出现处理不全或误匹配的情况
内容的提问来源于stack exchange,提问作者Aayush Jain
相关产品推荐
相关产品推荐

