Java正则表达式 删除一个或多个空行
删除一个或多个空行
正则表达式
1 | ^\s*$(?:\n|\r\n) |
(?m)
表示开启多行匹配模式,^
是行开始,\\s*
代表任意个空格,$
代表行结束。
所以这句话的意思是:
    所有空行(包括有任意空格的行)都会被替换为空字符串,即空行被从字符串中移除。
但是这样还是存在一个问题,那就是如果最后一行如果是空行的话,上面的正则是无法删除的。
所以还要再执行一步正则替换,把最后一行的换行符给删除掉:
匹配空行正则2
1 | (?:\n|\r\n)^\s*$ |
匹配效果:
这两个正则一起使用就可以删除掉所有空行了,两个正则的顺序可以随意。
删除所有空行Java代码
1 | public static String deleteEmptyLine(String input) |
移除多余的连续空格,只留下一个空格。
1 | string.replaceAll("[ ]+", " "); |
[ ]+
表示一个或多个空格," "
表示一个空格。这句话的意思就是把多个空格替换为一个空格。
原文:https://blog.csdn.net/kaukiyou/article/details/46829375
在线正则图形化工具
https://regexper.com/这个在线工具支持javascirpt类型的正则表达式。(?:(?:^\s*$(?:\n|\r\n))|(?:(?:\n|\r\n)^\s*$))
的图形如下:
https://www.debuggex.com/,这个在线工具支持javascript,python,pcre这三种方式,同时还支持在线匹配测试,(?:(?:^\s*$(?:\n|\r\n))|(?:(?:\n|\r\n)^\s*$))
的图形如下:
https://jex.im/regulex/这个在线工具和第一个差不多,也可以绘图。(?:(?:^\s*$(?:\n|\r\n))|(?:(?:\n|\r\n)^\s*$))
的图形如下: