一、正則表達式字符意義
符號 | 意義 |
---|---|
\s | 表示匹配一個空白字符,相當於[ \t\n\x0B\f\r] |
\b | 表示匹配一個單詞邊界 |
\d | 表示匹配一個0~9的數字,相當於[0-9] |
\w | 表示匹配任意一個數字,字母,下劃線,相當於[a-zA-Z0-9] |
* | 限定符,表示要匹配的字符(串)出現0到多次 |
? | 限定符,表示要匹配的字符(串)出現0次或1次 |
+ | 限定符,表示要匹配的字符(串)出現1到多次 |
{n} | 表示匹配前面的字符(串)n次 |
{n,m} | 表示匹配前面的字符(串)n到m次 |
() | 用於正則表達式分組 |
Note: |
以上非限定符的大寫則表示除它本身外,匹配任何字符,如\S表示除空白字符外,匹配任何字符,相當於[^\s] |
^ | 表示匹配字符串的開頭 |
$ | 表示匹配字符的結尾 |
[^] | 表示不匹配中括號內的表達式 |
[] | 表示匹配的一個範圍 |
- | 範圍連接符,用在中括號[]內,表示某個範圍,如[a-z]表示小寫字母a到z |
二、java類Pattern和Matcher的一些方法
(一)Pattern:
Pattern類相當於一個匹配的模板,看例子:
public class` TestPattern{
public static void main(String[] args){
Pattern p = p.compile("\\d{3}");
}
}
上面的代碼中,Pattern
的方法compile()
表示編譯了一個\\d{3}
正則表達式並讓p
指向它,這個方法的返回值爲Pattern
類型。這個正則表達式的意思是匹配3個數字,大家可能會想是不是我寫錯了,正則表達式不是\d
表示數字麼?怎麼這裏是\\d
呢?這裏解釋一下,在java
中,一個\
(backslash),表示的是一個轉義符,如\n
表示換行,所以如果在java中使用\d
,java虛擬機會認爲是一個轉義字符,而不是一個正則表達式,所以要用\d(backslash)來表示正則表達式中的數字,所有正則表達式在java中的轉義都是一樣的,要寫兩個\\
。
(二)Matcher:
這個類用來表示和模板p進行匹配的字符串和匹配後的處理操作,看例子:
public class` TestPattern{
public static void main(String[] args){
Pattern p = p.compile("\\d{3}");
Matcher m = p.matcher("535");
System.out.println(m.matches());
}
}
上面的代碼,調用Pattern的matcher()
方法,傳進一個要匹配的字符串,變量m
指向這個matcher()
方法返回的Matcher
類對象,最後調用matches()
方法檢測是否匹配,可以看出,打印爲true
.這裏就不分析了,想必大家也能自己分析出來。
這裏先簡單介紹下java
中的正則表達式,至於具體的操作,下次學到了再寫。