標籤:字元 個數 reg print 針對 轉義 示範 log 區別
做帳號判定的時候,如果挨個判斷就有點麻煩 。
單個字元判斷
String string1 = "[abc]"; //中括弧表示單個字元,不能匹配字串System.out.println("a".matches(string1)); //trueSystem.out.println("ab".matches(string1)); //falseString string2 = "[^abc]";//^是取反System.out.println("a".matches(string2));//falseSystem.out.println("d".matches(string2));//trueString string3= "[a-zA-Z]";//a-Z 26*2個字元System.out.println("a".matches(string3));//trueSystem.out.println("dc".matches(string3));//falseString string4= "[a-c[m-z]]";//a-Z 26*2個字元System.out.println("a".matches(string4));//trueSystem.out.println("d".matches(string4));//falseString string5= "[a-z&&[def]]";//a-z 與 def的交集 ,即defSystem.out.println("a".matches(string5));//falseSystem.out.println("d".matches(string5));//trueString string6= "[a-z&&[^def]]";//a-z 與 def取反的交集 ,即除了defSystem.out.println("a".matches(string6));//trueSystem.out.println("d".matches(string6));//false
預定義字元判斷
//.表示任一字元 ,一個點表示任意一個字元,兩個點代表兩個 。和[]區別,[]無論多少都是一個字元String string1="..";System.out.println("aa".matches(string1));//trueSystem.out.println("?".matches(string1));//false// \d表示0-9 的單個數字,但是\是逸出字元,所以需要兩個String string2="\\d";System.out.println("10".matches(string2));//falseSystem.out.println("3".matches(string2));//true// \D表示除了0-9的單個字元String string3="\\D";System.out.println("a".matches(string3));//trueSystem.out.println("3".matches(string3));//false// \s表示空白字元 \t\n\xOB\f\rString string4="\\s";System.out.println(" ".matches(string4));//trueSystem.out.println("3".matches(string4));//false// \S表示非空白字元 \t\n\xOB\f\rString string5="\\S";System.out.println(" ".matches(string5));//falseSystem.out.println("3".matches(string5));//true// \w表示[a-zA-Z0-9].大寫W就不示範了String string6="\\S";System.out.println(" ".matches(string6));//falseSystem.out.println("3".matches(string6));//true
數量次數判斷
//?代表一次或者一次也沒有,與[]連用就是abc針對單個字元一個或者一個都不出現String string1="[abc]?";System.out.println("a".matches(string1));//trueSystem.out.println("".matches(string1));//trueSystem.out.println(" ".matches(string1));//false//*代表0次到多次出現,這裡可以對字串進行判斷String string2="[abc]*";System.out.println("aaaaa".matches(string2));//true System.out.println("".matches(string2));//trueSystem.out.println("abcd".matches(string2));//falseSystem.out.println("abc".matches(string2));//true//+代表1次到多次出現,可以對字串判斷String string3="[abc]+";System.out.println("aaaaa".matches(string3));//trueSystem.out.println("".matches(string3));//falseSystem.out.println("abcd".matches(string3));//falseSystem.out.println("abc".matches(string3));//true//{n}代表恰好N次 , 還有{n,m} ,至少n次不超過m次,還有{n,} ,至少n次String string4="[abc]{3}";System.out.println("abc".matches(string4));//trueSystem.out.println("a".matches(string4));//falseSystem.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
Java基礎_正則表達