做帐号判定的时候,如果挨个判断就有点麻烦 。
单个字符判断
String string1 = "[abc]"; //中括号表示单个字符,不能匹配字符串 System.out.println("a".matches(string1)); //true System.out.println("ab".matches(string1)); //false String string2 = "[^abc]";//^是取反 System.out.println("a".matches(string2));//false System.out.println("d".matches(string2));//true String string3= "[a-zA-Z]";//a-Z 26*2个字符 System.out.println("a".matches(string3));//true System.out.println("dc".matches(string3));//false String string4= "[a-c[m-z]]";//a-Z 26*2个字符 System.out.println("a".matches(string4));//true System.out.println("d".matches(string4));//false String string5= "[a-z&&[def]]";//a-z 与 def的交集 ,即def System.out.println("a".matches(string5));//false System.out.println("d".matches(string5));//true String string6= "[a-z&&[^def]]";//a-z 与 def取反的交集 ,即除了def System.out.println("a".matches(string6));//true System.out.println("d".matches(string6));//false
预定义字符判断
//.表示任意字符 ,一个点表示任意一个字符,两个点代表两个 。和[]区别,[]无论多少都是一个字符 String string1=".."; System.out.println("aa".matches(string1));//true System.out.println("?".matches(string1));//false // \d表示0-9 的单个数字,但是\是转义字符,所以需要两个 String string2="\\d"; System.out.println("10".matches(string2));//false System.out.println("3".matches(string2));//true // \D表示除了0-9的单个字符 String string3="\\D"; System.out.println("a".matches(string3));//true System.out.println("3".matches(string3));//false // \s表示空白字符 \t\n\xOB\f\r String string4="\\s"; System.out.println(" ".matches(string4));//true System.out.println("3".matches(string4));//false // \S表示非空白字符 \t\n\xOB\f\r String string5="\\S"; System.out.println(" ".matches(string5));//false System.out.println("3".matches(string5));//true // \w表示[a-zA-Z0-9] .大写W就不演示了 String string6="\\S"; System.out.println(" ".matches(string6));//false System.out.println("3".matches(string6));//true
数量次数判断
//?代表一次或者一次也没有,与[]连用就是abc针对单个字符一个或者一个都不出现 String string1="[abc]?"; System.out.println("a".matches(string1));//true System.out.println("".matches(string1));//true System.out.println(" ".matches(string1));//false //*代表0次到多次出现 ,这里可以对字符串进行判断 String string2="[abc]*"; System.out.println("aaaaa".matches(string2));//true System.out.println("".matches(string2));//true System.out.println("abcd".matches(string2));//false System.out.println("abc".matches(string2));//true //+代表1次到多次出现,可以对字符串判断 String string3="[abc]+"; System.out.println("aaaaa".matches(string3));//true System.out.println("".matches(string3));//false System.out.println("abcd".matches(string3));//false System.out.println("abc".matches(string3));//true //{n}代表恰好N次 , 还有{n,m} ,至少n次不超过m次,还有{n,} ,至少n次 String string4="[abc]{3}"; System.out.println("abc".matches(string4));//true System.out.println("a".matches(string4));//false System.out.println("abcd".matches(string4));//false
字符串切割
String string = "abcd" ; String regex ="";//拿空格去切割字符串,生成数组 String[] arr =string.split(regex); for(int i=0;i<string.length();i++){ System.out.println(arr[i]); } // a b c d
时间: 2024-10-06 22:51:05