切割:记得以前想把一个字符分成几块,调用的是String中的split函数。

最初聊天室私聊的时候还以;分号作为分隔符,然后split函数把数据分成几块

但这样毕竟是有局限性的。

今天我们来看一下如何利用正则表达式来进行切割。

从API类中可以发现该方法,还是split函数。(只要看到regex就要反应过来是正则表达式)

split(String regex)

根据给定正则表达式的匹配拆分此字符串。

下面来看具体的例子:

需求:将下面的语句分割开来

String name="zhangsan,wangwu,xiaosi";

String regex=","

String[] arr=name.split(regex);

这样就可以得到每个人的姓名

但如果name是这样呢:String name="zhangsan,,,lisi,,wangwu";

这样如果不利用正则表达式多少会一些复杂

利用正则表达式String regex=",+";

+号表示一次或多次。

可以看到简化了很多。

处理叠词:介绍组的概念:为了可以让规则被重用,可以将规则(即正则表达式)封装成一个组,用()完成,组的出现都有编号,从1开始。想使用已有的组通过\n的形式调用。字符串中即“\\n”;

把erkkjislljis按叠词分开:string regex="(.)\\1+"; .表示任意字符,+表示一个或多个

替换:

String类中还有一个方法:

replaceAll(String regex, String replacement)

使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

我们来看看实际的操作

string str="dfsfdsdf4558998dfsdfsdf1231215ddd55"

将连续5位以上的数字替换为#

string regex="#{5,}";

更多推荐

java 正则表达式 分割_JAVA正则表达式(切割,替换)