java--正則表達式

正則表達式概念:一個字符串,一個規則java

String regex ="[1-9]\\d{4,14}"正則表達式

str.matches(regex)  返回值類型boolean繼承

java.util.regex下的Pattern類字符串


 

單個字符類it

[abc] []表明單個字符,表示a或b或c字符table

[^abc] 除a/b/c外的任何字符class

[a-zA-Z]表示範圍,兩頭的字母包括表單

[a-d[m-p]]並集方法

[a-z&&[def]]交集im

[a-z&&[^bc]] = [ad-z]

[a-z &&[^m-p]]減去


 

預約義字符類

. 任意字符

\d =[0-9]     // \表示轉義字符,若是想表示\d的話,須要\\d

\D [^0-9]非數字

\s 空白字符 [ \t\n\x0B\f\r] \ttable鍵水平製表符,\n換行 \r回車   匹配空格和table鍵的等

\S 非空白字符

\w 單詞字符[a-zA-Z_0-9]

\W 非單詞字符

 


數量詞 Greedy

X ? X一次或一次也沒有 注意:一次也沒有指得是X,也不能出現其餘的""

X* X零次到屢次

X+ X一次到屢次

X{n} X出現n次

X{n,}x出現至少n次

X{n,m}x出現n-m次

 


 

注意:split分割時,如使用.分割,須要\\.


 

replaceall 正則表達式的替換功能

String s = "wo1ai2heima";

String regex = "\\d";

String s2 = s.replaceAll(regex,"");


 

正則表達式的分組功能

1.組零表明整個表達式

2.其餘按照左括號分組

String regex = "(.)\\1(.)\\2" \\1第一組出現兩次 \\2第二組出現兩次

String regex = "(.)\\1+" +表示第一組出現一次到屢次

String s = str.replaceAll("(.)\\1+","$1")$1表示第一組中的內容

 


 

Pattern 和Matcher概述

Pattern不能被繼承,其典型調用順序爲:

Pattern p = Pattern.compile(String regex);  獲取正則表達式

Matcher m = p.matcher(String str) ; 獲取str的匹配器

boolean b = m.matches(); 看是否能匹配,匹配就返回true

上面三步驟等於 str.matches(regex)

上面的第一種方法看似是複雜的,可是其相較於第二種方法有更加實用的場景,如獲取字符串中的手機號碼等。

Pattern p = Pattern.compile(String regex);  獲取正則表達式

Matcher m = p.matcher(String str) ; 獲取str的匹配器

boolean b = m.find(); 看是否有匹配的子串,匹配就返回true

String s1= m.group();返回上次匹配的子串

while(m.find())

      System.out.println(m.group);    獲取字符串中匹配的全部子串。

相關文章
相關標籤/搜索