• Java正则表达式替换移除空行和多余的空格


    1. 移除多余的连续空格,只留下一个空格。

    string.replaceAll("\s{2,}", " ");

    比较简单\s代表空格,使用贪婪表达式,如果是2个或多个空格,则替换为空格。

    续,实践中发现不工作原来\s不光代表空格,是等于[ x0Bf ]

    \p{Blank}{2,} 则是A space or a tab

    更简单的 string.replaceAll("[ ]+", " ");


    2. 移除空行

    string.replaceAll("(?m)^\s*$"+System.lineSeparator(), "");

    ?m开启多行模式,^是行开始,\s*代表任意个空格,$代表行结束,System.lineSeparator()则是为了跨平台的换行符。

    故所有空行包括只含有空格的空行都会被替换为空字符串,即被移除。


    考虑到不同平台的文件存在混用的情况,可以改进为 string..replaceAll("(?m)^\s*$(\n|\r\n)", "");


    3. 替换字符串中的唯一子字符串,如果子字符串含有正则表达式字符,则替换不成功。

    可以考虑自己写一个方法实现。

    public String removeString(String str, String old) {
    int i = str.indexOf(old);
    if (i >= 0) {
    return str.substring(0, i) + str.substring(i + old.length());
    }
    return str;
    }
    ————————————————
    版权声明:本文为CSDN博主「kaukiyou」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/kaukiyou/article/details/46829375

  • 相关阅读:
    用python对汉诺塔动态的实现
    用python语言算π值并且带有进度条
    turtle库的学习笔记
    Leetcode 230 二叉搜索树中第k小的元素
    Leetcode 665 非递减数列
    Leetcode 1423 可获得的最大点数
    Leetcode 222 完全二叉树的节点个数
    Leetcode 1208尽可能使字符串相等
    Leetcode 199 二叉树的右视图
    Leetcode 634 子数组最大平均数
  • 原文地址:https://www.cnblogs.com/interdrp/p/12726553.html
Copyright © 2020-2023  润新知