正則表達式的概念和簡單使用

正則表達式
是指一個用來描述或者匹配一系列符合某個語法規則的字符串的單個字符串。其實就是一種規則,有自己的特殊應用。
作用
比如郵箱註冊,郵箱有用戶名和密碼,一般會對其限制長度,這個限制長度就是正則表達式做的。
String類提供了matches和split方法可以實現一些正則的需求.

案例:校驗QQ號碼

要求:
1.必須輸5-15位數字
2.0不能開頭
3.必須都是數字

public static void main(String[] args){
//[1-9]:第一個字母必須是1-9中的一個
//\\每一個字母必須是數組
//{4,14}除了第一個之外後邊的長度必須在4-14之間(加上第一個就是5-15)
String regex="[1-9]\\d{4,14}";
System.out.println("1234560".matches(regex));
}

正則表達式摘要

1.字符類

2.預定義字符,\x本來就爲某個正則表達式,但是java中要想得到\,需要轉義,即\x

.:匹配任何字符;匹配一個字符
\d:匹配數字[0-9];匹配單個字符
\D:匹配非數字[^0-9];匹配單個字符
\s:匹配空白字符(空格鍵和tab鍵均可);匹配單個字符
\S:匹配非空白字符[^\s];匹配單個字符
[\w]:a到z或A到Z或_或0到9(匹配英文字母,數字和下劃線),即[a-zA-Z_0-9];匹配一個字符
[\W]:[^\w];匹配一個字符

3.數量詞,X代表泛指

X?:一次或一次也沒有
X*:零次或者多次,字符串中只能有a或者空格,不能有其他字符如abc就是false
X+:一次或多次,至少有一次出現
X{n}:恰好n次
X{n,}:至少n次
X{n,m}:至少n次,但是不超過m次

正則表達式的分割

案例1,用“-”拆分數字

String s="11-23-56-98-56";
String[] arr=s.split("-");//以“-”進行拆分
for(String str:arr){
System.out.println(str);
}

案例2:用“.”拆分數字

String s="11.23.56.98.56";
String[] arr=s.split("\\.");//以“.”進行拆分,因爲.是匹配任意字符,所以需要轉義
for(String str:arr){
System.out.println(str);
}

案例3:把給定的字符串中的數字排序

String s="91,27,56,98,42,120";
//拆分數組
String[] arr=s.split("\\s");//或者s.split(" ")
//轉成int數組
int[] is=new int[arr.length];
for(int i=0;i<arr.length;i++){
is[i]=Integer.parseInt(arr[i]);
}
//排序
Arrays.sort(is);
//拼接回字符串
String newStr="";
for(int i=0;i<is.length;i++){
newStr+=is[i]+" ";
}
System.out.println(newStr);

正則表達式的替換

public String replaceAll(String regex,String replacement)

案例:將字符串中的520全部換成我愛你

String s="520 java 520 python 250 c";
s=s.replaceAll("\\d{3}","我愛你");//或s.replaceAll("520","我愛你");
System.out.println(s);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章