正则表达式替换以删除 html 标记之间的空格

Posted

技术标签:

【中文标题】正则表达式替换以删除 html 标记之间的空格【英文标题】:Regex replacement to remove whitespace between html tags 【发布时间】:2020-08-29 20:23:56 【问题描述】:

我目前正在使用基于 mustache/handlebars 模板构建的 html

目标是在车把生成文本后获取文本,并通过删除不必要的空白字符来减小其大小,但保持属性值和标签内容不变。

以以下为例:

</p>                                </td>                            </tr>                            <tr>                                <td>

应该变成:



</a></td></tr><tr><td>


还有:


<p align="left"> Untouchable text </p>               </td>            </tr> 


应该变成:


<p align="left"> Untouchable text </p></td></tr> 


【问题讨论】:

【参考方案1】:

你可以使用replaceAll("&gt;\\s+&lt;", "&gt;&lt;"),如下图:

public class Main 
    public static void main(String[] args) 
        String s = "<p align=\"left\"> Untouchable text </p>               </td>            </tr>";
        System.out.println(s.replaceAll(">\\s+<", "><"));
    

输出:

<p align="left"> Untouchable text </p></td></tr>

注意:

    查看this,了解更多关于String::replaceAll的信息。 正则表达式\\s+用于匹配空格。

【讨论】:

以上是关于正则表达式替换以删除 html 标记之间的空格的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式替换markdown文件代码块标记中的所有空格

如何使用正则表达式和 PHP 替换两个 HTML 标记之间的文本? [复制]

C# 正则表达式:将空格替换为 XML 标记

正则表达式替换 HTML 文档中的空格

正则表达式 - 将 HTML 转换为有效的 XML 标记 [重复]

利用notepad++正则表达式将 多个空格 替换为一个逗号