String split方法很常用,比如"1,2,3,4,5".split(",")返回["1","2","3","4","5"],如果想保留分隔符呢?答案是利用正则表达式的环视功能。

(?=X)

X, via zero-width positive lookahead

(?!X)

X, via zero-width negative lookahead

(?<=X)

X, via zero-width positive lookbehind

(?

X, via zero-width negative lookbehind

java API中的说明

lookahead 向前看 lookbehind向后看

什么是前?什么是后?

向后查找(Lookbehind)则是指搜索当前位置的左面部分。请谨记,环视结构只是向前或向后看,实际上并不改变输入字符串的当前位置。

向前查找(lookahead) 指搜索当前未知的右面部分

所以上面可以理解为左边是什么/左边不是什么 右边是什么 /右边不是什么

环视只匹配位置,不会消耗字符,所以上面的问题也就很容易解决了,只要匹配左边不是逗号右边是逗号,以及左边是逗号右边不是逗号,匹配这两种位置,就能把分隔符也保留下来。

Pattern p = Pattern.compile("(?<=<=)|(?=<=)|(?<==)|(?=>=)|(?<=>)(?!=)|(?=>)|(?<===)|(?===)|(?<=!=)|(?=!=)");

上面这个正则用来切分 endDate >= startDate,endDate > startDate 这样的表达式,切分结果为三部分。

java split保留分隔_String split如何保留分隔符相关推荐

  1. java 分隔函数split(,-1)的用途

    转: java 分隔函数split("",-1)的用途 2017年12月14日 11:37:58 jaryle 阅读数:8517 1.如果字符串最后一位有值,则没有区别, 2.若干 ...

  2. 用java编写保留两位小数_Java保留两位小数的几种写法总结

    摘要:这篇Java开发技术栏目下的"Java保留两位小数的几种写法总结",介绍的技术点是"Java保留两位小数.保留两位小数.两位小数.Java.小数.总结", ...

  3. java split函数的用法,java拆分字符串_java中split拆分字符串函数用法

    摘要 腾兴网为您分享:java中split拆分字符串函数用法,中信期货,掌上电力,星球联盟,淘集集等软件知识,以及韩剧精灵,每日英语听力vip,龙卷风收音机,优衣库,中国平煤神马集团协同办公系统,光晕 ...

  4. c#_String.Split 方法进阶篇

    Split(Char[]) 基于分隔符数组中的字符将字符串拆分为多个子字符串. String value = "This is a short string."; Char del ...

  5. java split 坑_java String split 踩坑记

    split操作是出镜率非常高的一个方法, 但是我们使用中通常会使用两个类提供的split方法, 他们在入参类型一样, 但是效果却有一些差别, 稍不注意容易踩坑. java.lang.String#sp ...

  6. Java实现若干个数计算平均值并保留小数位 java计算平均值 java四舍五入保留小数

    Java实现若干个数计算平均值并保留小数位 java计算平均值 java四舍五入保留小数 一.需求 1.在项目中,要计算若干个指标的平均值,找了一圈,发现JDK中没有提供,于是乎,造一个. 2.因若干 ...

  7. java日期时间库-常用案例-不保留全分享

    java日期时间库-常用案例-不保留全分享 除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使 ...

  8. java的split方法可以实现同时使用多个分隔符劈开字符串方法:

    java的split方法可以实现同时使用多个分隔符劈开字符串方法: 用例子来说比较好理解一点,比如 String conditionText = 'a==2||a>=3&&b== ...

  9. Java拆分字符串的函数——split

    public String[] split(String regex, int limit)regex -- 正则表达式分隔符. limit -- 分割的份数. 注:split会根据分割符将字符串分割 ...

最新文章

  1. 投影参数_智能投影仪参数如何去看,其实很简单
  2. Tomcat高级部分-使用特定模块和软件反向代理请求到后端tomcat实现负载均衡和session保持...
  3. css之line-height及图片文字垂直居中
  4. 仰视源代码,实现strcpy
  5. NIPS 2017论文解读 | 基于对比学习的Image Captioning
  6. CRMEB开发文档及目录结构
  7. 文件上传之传统方式上传代码回顾
  8. 从java到C++入门
  9. oracle数据库12下载地址,Oracle 数据库和补丁下载地址 12.1.0.2 11.2.0.4 11.2.0.1
  10. ubuntu中关闭防火墙
  11. Git commit至Gitee报错‘remote: error: hook declined to update refs/heads/master‘的解决方法
  12. 纠正网上Mac 上使用Hbuilder运行夜神游模拟器,Hbuilder找不到模拟器
  13. office套件_【office】Android版微软办公套件Office独立版一体化
  14. [洛谷P3807]【模板】卢卡斯定理
  15. 每个人都应该了解的HTTPS知识
  16. 手机号识别轻松对着号码扫一扫就录入了
  17. DISCUZ!论坛管理员无法登录后台的各种解决方法总结
  18. m3u8手机批量转码_M3U8批量转换app-M3U8批量转换MP4软件下载v1.0 安卓版-西西软件下载...
  19. 6.泛型方法:什么是泛型方法???
  20. 模拟太阳系的html,three.js模拟实现太阳系行星体系功能

热门文章

  1. string类函数和牛客网剑指offer刷题记录
  2. 解决chrome浏览器一打开就弹出hao123问题
  3. Python小课们是如何赚钱的
  4. 量化交易软件该怎么选择
  5. C语言 打印2的n次方
  6. 机器学习笔记 - 互信息Mutual Information
  7. BusyCal for Mac(任务日历工具)
  8. Kanzi 的开机优化
  9. 19 01 18 dango 模型
  10. 想要学好云计算,这四个方法要掌握!