java正则表达 替换_廖雪峰Java9正则表达式-2正则表达式进阶-6搜索和替换

1.使用正则表达式分割字符串:

String[] string.split(String regex);

"a b c".split("\\s");->[a, b, c]

"a b c".split("\\s");->[a, b, , , , c]

"a b c".split("\\s+");->[a, b, c]

"a,b:;c".split("[\\,\\:\\;\\s]+");->[a, b, c]

public static void main(String[] args){

String tags = "java php python";

String[] arr = tags.split("\\s");

System.out.println(Arrays.toString(arr));

}

93cfc6b744061744c7008c97b265b866.png

```#java

public class SplitString {

public static void main(String[] args){

String tags = "java php python";

String[] arr = tags.split("\\s+");

System.out.println(Arrays.toString(arr));

}

}

```

dde70657d8064c349a56406a9c06635f.png

```#java

public class SplitString {

public static void main(String[] args){

String tags = "java, php;: python";

String[] arr = tags.split("[\\,\\;\\:\\s]+");

System.out.println(Arrays.toString(arr));

}

}

```

dde70657d8064c349a56406a9c06635f.png

2.使用正则表达式查找字符串

package com.testList;

import java.util.Arrays;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class SearchString {

public static void main(String[] args){

String s = "The quick brown fox jumps over the lazy dog.";

//区分大小写

Pattern p1 = Pattern.compile("the");

Matcher m1 = p1.matcher(s);

while(m1.find()){

String sub = s.substring(m1.start(),m1.end());

System.out.print(sub+",start="+m1.start()+" end="+m1.end()+"\t");

}

System.out.println();

//不区分大小写

Pattern p2 = Pattern.compile("the",Pattern.CASE_INSENSITIVE);

Matcher m2 = p2.matcher(s);

while(m2.find()){

String sub = s.substring(m2.start(),m2.end());

System.out.print(sub+",start="+m2.start()+" end="+m2.end()+"\t");

}

System.out.println();

//匹配每个单词

Pattern p3 = Pattern.compile("\\w+",Pattern.CASE_INSENSITIVE);

Matcher m3 = p3.matcher(s);

while(m3.find()){

String sub = s.substring(m3.start(),m3.end());

System.out.print(sub+",start="+m3.start()+" end="+m3.end()+"\t");

}

System.out.println();

//匹配带有o的单词

Pattern p4 = Pattern.compile("\\w*o\\w*",Pattern.CASE_INSENSITIVE);

Matcher m4 = p4.matcher(s);

while(m4.find()){

String sub = s.substring(m4.start(),m4.end());

System.out.print(sub+",start="+m4.start()+" end="+m4.end()+"\t");

}

}

}

e54b3ac30ce655204ba58f10870a2c2d.png

3.使用正则表达式替换字符串

public class SplitString {

public static void main(String[] args){

String s = "The quick brown fox jumps over the lazy dog.";

//区分大小写

String r = s.replaceAll("\\s+"," ");//参数依次为正则表达式,用于替换的字符

System.out.println(r);

String r2 = s.replaceAll("(\\w+)","$1");//$1方向引用,指向前面捕获的单词

System.out.println(r2);

}

}

65e80f966169868c84e987c931ca52b4.png

4.总结

使用正则表达式可以:

分割字符串:String .split()

搜索字串:Matcher.find()

替换字符串:String.replaceAll()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值