用来描述或者匹配一系列符合某个语句规则的字符串
1、英文句点.符号:匹配单个任意字符。
表达式t.o 可以匹配:tno,t#o,teo等等。不可以匹配:tnno,to,Tno,t正o等。 2、中括号[]:只有方括号里面指定的字符才参与匹配,也只能匹配单个字符。
表达式:t[abcd]n 只可以匹配:tan,tbn,tcn,tdn。不可以匹配:thn,tabn,tn等。 3、| 符号。相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配。
表达式:t(a|b|c|dd)n 只可以匹配:tan,tbn,tcn,tddn。不可以匹配taan,tn,tabcn等。 4、符号:表示否,如果用在方括号内,表示不想匹配的字符。
表达式:[^x] 第一个字符不能是x 5、\S符号:非空字符 6、\s符号:空字符,只可以匹配一个空格、制表符、回车符、换页符,不可以匹配自己输入的多个空格。 7、\r符号:空格符,与\n、\tab相同
1、\d表示[0—9] 2、\D表示[^0—9] 3、\w表示[0—9A—Z_a—z] 4、\W表示[^0—9A—Z_a—z] 5、\s表示[\t\n\r\f] 6、\S表示[^\t\n\r\f]
1.判断作用: public boolean matches(String regex)
String regex = "1[49]\\d{9}";//判断是否是14或者19开头的手机号。{9}字符串为10位(不包括1) boolean flag = s.matches(regex);//执行判断功能2 分割作用:
splitDemo("erkktyqqquizzzzo","(.)\\1+");//按照叠词切割,输出不为叠词的字符 public static void splitDemo(String str,String reg) { //String reg=" +";//按照多个空格来进行切割 String[] arr=str.split(reg);//以正则表达式的规则来切割 System.out.println(arr.length); for(String s:arr) { System.out.println(s); } }结果:
4 er ty ui o3 替换作用:
String str="wqe525235325gf5367676dfg142142424";//将字符串中的数组替换成# replaceAllDemo(str,"\\d{5,}","#");//把超过连续5个或以上的数字替换为#号 String str1="efjjhhhhhwqqqiiiiiiiiio";//将叠词替换成单个字母。hhhh——>h replaceAllDemo(str1,"(.)\\1+","$1");//任意一个字符,它的下一个字符或多个重复,则将叠词换为单个字符 }结果:
wqe#gf#dfg# efjhwqio