java正则表达式替换空格_Java正则表达式替换移除空⾏和多
余的空格
这⼏天重拾Java写代码,须要操做⽂本⽂件中的内容。正则表达式
最终,要把内容⾥的空⾏和多余的连续空格移除,使⽤String⾥的replace或者replaceAll,试了不少次都没有成功。spa
最后发现须要使⽤正则表达式Regex。先把解决⽅案共享以下。rem
1. 移除多余的连续空格,只留下⼀个空格。字符串
string
java replace方法⽐较简单\\s表明空格,使⽤贪婪表达式,若是是2个或多个空格,则替换为空格。⽅法
续,实践中发现不⼯做原来\\s不光表明空格,是等于[ \t\n\x0B\f\r]tab
\\p{Blank}{2,} 则是A space or a tab
跨平台
更简单的 placeAll("[ ]+", " ");⽂件
2. 移除空⾏解决⽅案
m开启多⾏模式,^是⾏开始,\\s*表明任意个空格,$表明⾏结束,System.lineSeparator()则是为了跨平台的换⾏符。
故全部空⾏包括只含有空格的空⾏都会被替换为空字符串,即被移除。
考虑到不⼀样平台的⽂件存在混⽤的状况,能够改进为 placeAll("(?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;
}
综上, 但愿能够帮到你们。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论