正則表達式

一 預定義字符

注意: 任何預定義字符沒有加上數量詞都只能匹配一個字符

.  任意字符
\d 0-9的數字   注:\有特殊含義所以一般寫成\\d
\D 非數字       注:一般寫成\\D
\s 空白字符
\S 非空白字符
\w 單詞字符
\W 非單詞字符

二 數量詞

X?      X一次或一次也沒有 例:"1".matches("\\d?")
X*      X零次或多次
X+      X一次或多次
X{n}    X恰好n次
X{n,}   X至少n次
X{n,m}  X至少n次,但不超過m次

三 範圍詞

注意 : 範圍詞裏不管內容有多長, 沒有數量詞配合只能匹配一個字符

[abc] a,bc
[^abc] 除了a,b,c的任意字符
[a-zA-z] 大寫字母和小寫字母

四 示例

匹配

 //匹配固定電話 區號-主機號  區號: 首位0 長度:3-4 主機號:首位非0 長度;7-8
 String regx = "0\\d{2,3}-[1-9]{6,7}"

切割

//根據重疊詞切割字符串
String str = "好好學習天天向上";
String[] datas = str.split("(.)\\1+");

替換

//替換電話號碼
String str = "如有需求聯繫他:13556082123"
String reg = "1[34578]\\d{9}";
str.replaceAll(reg,"******");

查找

五 正則分組

分組的目的是爲了讓正則的內容被複用起來,組號是從1開始。

((A)(B(C))) 要看有幾組 就要看"("有幾個組
第一組 : ((A)(B(C)))
第二組 : (A)
第三組 : (B(C))
第四組 : (C)

\1引用第一組所匹配到的內容

示例
//根據重疊詞切割字符串
String str = "好好學習天天向上";
String[] datas = str.split("(.)\\1+");

六 正則對象

查找

Pattern p = Pattern.compile("正則");
Matcher m = p.matcher("aaaabbbb");//獲取匹配器Matcher
boolean b = m.matches();

//匹配器要使用到的方法:
1 find() 通知匹配器去匹配字符串,查找符合規則的字符串。
2 group() 獲取符合規則的子串,使用group方法的時候一定要先調用find方法查找,否則報錯
發佈了44 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章