1.正则表达式用来描述特殊的字符串。如:a{3}表示字符串“aaa"
2.使用场合:主要用于String类的split(String regex)、replaceAll(String regex,String replace)、replaceFirst(String regex,String replace)
3.在正则表达式中具有特殊含义的字符
特殊字符 描述
. 表示任意一个字符
[abc] 表示a,b,c中的任意一个字符
[^abc] 除a,b,c以外的任意一个字符
[a-zA-Z] 介于a到z,或A到Z的任意一个字符
\s 空白符(空格、tab、换行、换页、回车)
\S 非空白符
\d 任意一个数字[0~9]
\D 任意一个非数字[^0~9]
\w 词字符[a~zA~Z 0~9]
\W 非词字符
4.一些特殊符号表示字符出现的次数
表示次数的符号 描述
* 0次或者多次
+ 1次或者多次
? 0次或者1次
{n} 恰好n次
{n,m} 至少n次,不多于m次。
5.应用
删除公共字符串。输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符,输出删除之后的字符串。
一般做法:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String s1=sc.nextLine();
String s2=sc.nextLine();
char[] ch=s2.toCharArray();
for(int i=0;i<ch.length;i++){
s1=s1.replaceAll(String.valueOf(ch[i]),"");
}
System.out.println(s1);
}
sc.close();
}
}
使用正则表达式:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String s1=sc.nextLine();
String s2=sc.nextLine();
String pattern="["+s2+"]";
String res=s1.replaceAll(pattern,"");//将s1中的任意一个pattern字符替换为""
System.out.println(res);
}
sc.close();
}
}