这几天重拾Java写代码,须要操做文本文件中的内容。正则表达式

最终,要把内容里的空行和多余的连续空格移除,使用String里的replace或者replaceAll,试了不少次都没有成功。spa

最后发现须要使用正则表达式Regex。先把解决方案共享以下。rem

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

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

string

比较简单\\s表明空格,使用贪婪表达式,若是是2个或多个空格,则替换为空格。方法

续,实践中发现不工做原来\\s不光表明空格,是等于[ \t\n\x0B\f\r]tab

\\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;

}

综上, 但愿能够帮到你们。

java正则表达式 替换空格_Java正则表达式替换移除空行和多余的空格相关推荐

  1. 移除字符串中多余的空格(包括中间多余空格及两头多余空格)

    最近在搞C++的字符串配置解析,有一个环节就是移除字符串中多余的空格,只保留一个空格,于是写了一个小demo验证了一下可行性: int main() {std::string str = " ...

  2. java正则表达式的使用_java正则表达式使用

    用正则表达式进行字符串校验,截取十分方便,项目开发中灵活的使用正则表达式能让你的代码简洁优雅并且不易出错.在实际的应用中,掌握以下几点知识就可以应付绝大多数的开发场景了. 1. 字符串开始结束匹配:^ ...

  3. java 数字范围正则_Java 正则表达式

    正则表达式 概述 正则表达式定义了字符串的模式.正则表达式可以用来搜索.编辑或处理文本.正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. java.util.regex 包主要包括以下三 ...

  4. java正则表达式的用法_Java 正则表达式的使用

    Java 正则表达式的使用 1:正则表达式语法大全 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.例如,"n"匹配字符"n".&quo ...

  5. java qq验证手机号码_java正则表达式表单验证类工具类(验证邮箱、手机号码、qq号码等)...

    package util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 使用正则表达式进行表单验证 * ...

  6. java 正则替换 或_Java正则替换

    /** * 替换上下文 * * @author tianhongjun * */ static class EvaluateContext { private int startPos; privat ...

  7. java 正则 多个空格_java正则表达式 多个空格替换多个成-

    今天遇到一个正则表达式问题,如题,需求是将"aaa   bbb"替换成"aaa---bbb",关键来了,要求正则表达式前面是aaa,后面是bbb. 如s.rep ...

  8. java正则替换数字_Java 正则表达式,替换图片,替换数字,和谐用语,复制文件...

    /** * indexOf("字符",位置int)//在方法中,只输入第一个属性默认从头开始查找属性中的字符,位置int表示从输入的int位置之后查找字符 * lastIndexO ...

  9. java正则替换数字_Java 正则表达式,替换图片名称,替换数字,和谐用语,复制文件...

    /**替换图片名称 * public static void main(String[] args) { String imgName="1234.jpg"; String[] d ...

最新文章

  1. android怎么监听多点触摸_什么是多点触控技术,有哪些用途
  2. 2012到2020主要的CNN架构总结
  3. sql server 2008 您所做的更改要求删除并重新创建以下表
  4. 前端常见知识点一之HTTP
  5. 【数据库系统概论】考研第一部分重点分析【1.2】
  6. 痛并快乐着看火箭比赛
  7. 恒安标准人寿:念好小公司数据保护生意经
  8. 轻量级文本编辑器,Notepad最佳替代品:Notepad++
  9. 重磅开源!新型VOLO打破多项记录!
  10. 二叉树的创建与遍历(C++)
  11. 转: SQLite内建函数表
  12. vs2005智能提示快捷键,智能完成消失了怎么调出来。
  13. .html与.htm为网页后缀的区别
  14. ESlint 配置从0到1 (二)
  15. SmartGit 无限试用方法
  16. matlab非牛顿流体,可用于常见非牛顿流体的数值模拟方法与流程
  17. word中如果出现某一行突然文字突然间距增大,两种解决方案
  18. golang读取conf文件的两种方式(ini和Viper)
  19. 梅西的命运才是真正的人生
  20. 矩阵分析——Jordan标准形

热门文章

  1. word2vec自训练词向量(代码+注释+训练过程和结果)
  2. Html5 使用SUI制作留言信息
  3. 废酸回收技术的分享和经济意义剖析
  4. 孕妇生日祝福语(30句)集合
  5. I3Net: Implicit Instance-Invariant Network for Adapting One-Stage Object Detectors
  6. mapbox中文地图_vue 地图可视化(2)mapbox篇
  7. java开发防伪码_企业编码生成系统智能批量生成带数据分析功能的防伪码
  8. Ext ColumnModel
  9. 关闭windows键盘
  10. 【C 语言】文件操作 (fscanf、fprintf 函数)