需求

针对tab键带来的多个空格问题,有时候我们针对带空格的一行数据要进行切割,如果有多个空格就会出现就会切割空格出现,我们想把空格都去掉,所以需要用到某些方法。

解决方案

利用正则表达式来匹配空格

\\s+

首先利用split("\\s+");方法来对字符串切割,尽可能的匹配空格,这里也挺有意思,因为空格数目不一样,可以动态变换匹配的空格数量,这个实现原理可以看看底层原理,挺有意思。
测试:

     String string="a   b  a  a ";for(String a:string.split("\\s+")){System.out.println(a);}

扩充知识

正则表达式的() [] {}有不同的意思。
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。(\s*)表示连续空格的字符串。
[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。
{}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s{1,3}表示匹配一到三个空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。
[0-9]{0,9} 表示长度为 0 到 9 的数字字符串

()和[]有本质的区别

()内的内容表示的是一个子表达式,()本身不匹配任何东西,也不限制匹配任何东西,只是把括号内的内容作为同一个表达式来处理,
例如:(ab){1,3},就表示ab一起连续出现最少1次,最多3次。如果没有括号的话,ab{1,3},就表示a,后面紧跟的b出现最少1次,最多3次。另外,括号在匹配模式中也很重要。这个就不延伸了,LZ有兴趣可以自己查查
[]表示匹配的字符在[]中,并且只能出现一次,并且特殊字符写在[]会被当成普通字符来匹配。例如[(a)],会匹配(、a、)、这三个字符。
所以() [] 无论是作用还是表示的含义,都有天壤之别,没什么联系

社招、校招内推时刻

本人在阿里巴巴工作,业余时间做了社招、校招的公众号,可以内推大家,免筛选直接面试,公众号的一些文章也帮助大学、研究生的一些同学了解校招、了解名企,工作几年的同学想换工作也可以找我走社招内推,同时大家对文章有问题,也可以公众号找我,扫码关注哦!

JAVA正则表达式匹配多个空格相关推荐

  1. Java 正则表达式匹配模式[贪婪型、勉强型、占有型]

    转载自  Java 正则表达式匹配模式[贪婪型.勉强型.占有型] Greediness(贪婪型):最大匹配 X?.X*.X+.X{n,} 是最大匹配.例如你要用 "<.+>&qu ...

  2. java正则验正斜杠_JAVA资格认:java正则表达式匹配斜杠

    在正则表达式里面匹配一个斜杠,需要用4个斜杠: Java代码 import java.util.regex.Matcher; import java.util.regex.Pattern; publi ...

  3. java 正则表达式匹配数字_java正则表达式匹配所有数字的案例

    用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9]) ( [1-9] :匹配1~9的数字: \d :匹配数字,包括0~9: * :紧跟在 \d 之后,表明可以匹配零个 ...

  4. java正则表达式匹配字符串_java正则表达式如何匹配字符串

    java正则表达式匹配字符串的方法:使用tostring,代码为[while(matcher.find()){tmp.add(matcher.group(1).toString());}]. java ...

  5. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  6. java正则表达式 匹配次数_正则表达式教程之重复匹配详解

    本文实例讲述了正则表达式教程之重复匹配.分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的[和]之间,有的例子会使用Java来实现,如果是java本身正则表达式的用法 ...

  7. java正则表达式匹配路径_正则表达式教程之位置匹配详解

    本文实例讲述了正则表达式教程之位置匹配.分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的[和]之间,有的例子会使用Java来实现,如果是java本身正则表达式的用法 ...

  8. java正则表达式匹配数字范围_在java中怎么利用正则表达式匹配数字

    在java中怎么利用正则表达式匹配数字 发布时间:2020-12-03 17:47:12 来源:亿速云 阅读:58 作者:Leah 在java中怎么利用正则表达式匹配数字?针对这个问题,这篇文章详细介 ...

  9. java正则表达式匹配字符串

    今天练习java比赛题时,忘记了java的正则表达式怎么用,特地查了一下.觉得用好正则表达式真的是能有意想不到的效果. Talk is cheap,show you their code //解释内容 ...

最新文章

  1. BZOJ2120 数颜色 【带修改莫队】
  2. 我的百度研发面经整合版(智能云,核心搜索) | 掘金技术征文
  3. Ubuntu下利用JDK的Keytool配置Tomcat7.0的SSL协议(单向认证简易版)
  4. 100小时学会sap-财务篇fico总结介绍篇
  5. Java实现1到n的倒数的累加和
  6. AngularDart Material Design 步进器
  7. 【渝粤题库】国家开放大学2021春1377理工英语3题目
  8. esxi服务器与虚拟机时间不符,vsphere6.7-虚拟机与ESXI时间同步
  9. 我,大学没毕业,在OpenAI搞AI,想教教你如何提升“研究品味”
  10. python-函数的嵌套调用
  11. 堆内存 和 栈内存的简单理解 (未完待续~)
  12. 忘记mysql密码的一种解决办法
  13. python操作mysql(一)MySQLdb模块安装和数据库基本操作
  14. idea配置Lua环境
  15. SQL Server分页3种方案比拼[转]
  16. QQ一键加群android代码,PC和移动端一键添加和打开QQ群代码分析
  17. 常用的北斗高精度定位技术有哪些?
  18. php微信消息通知,企业微信实现消息通知功能
  19. 基于RT-Thread的环境监测装置(含IO口模拟8080时序驱动TFT屏幕)
  20. matlab新手信号分析ppt,卡普课件 《信号与系统》matlab实现连续系统时域分析.ppt...

热门文章

  1. Android UI 渲染机制的演进,你需要了解什么?
  2. 2022-11-10:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。 为了简单起见,你可以假设: words.txt只包括小写字母和 ‘ ‘ 。 每个单词只由小写
  3. 盛大进军电子书被视搅局者
  4. 两种启动tomcat的方法
  5. cannot re-initialize CUDA in forked subprocess.To use CUDA with multiprocessing,you must use the ...
  6. 集成 AliPay - 支付宝
  7. mkimage使用与解包
  8. 女性英文名字大全,还有来历、释义
  9. 人工智能交互革命:探索ChatGPT的无限可能 第8章 ChatGPT在教育领域的应用
  10. 按照高等代数的传统解法编写c++程序实现N(N256)元的线性方程组的求解