Java正則表達式(Pattern Matcher)
1.常用正則標記(熟記*)
1.字符(匹配單個字符)
字符標記描述
a匹配字母 "a"
\\轉義字符,用于表示特殊字符
\n匹配換行符
\t匹配制表符
?2.一組字符(任意匹配里面的單個字符)
正則標記描述[abc]匹配字符中的任意一個,相當于 a 或 b 或 c
[^abc]匹配除了字符中的任意一個字符之外的字符
[a-zA-Z]匹配任意大小寫字母
[0-9]匹配任意數字字符
3.邊界匹配(在以后編寫JavaScript時候會用到)
正則標記描述
^匹配輸入字符串的開始位置
$匹配輸入字符串的結束位置
4.簡寫標記(每一位出現的簡寫標記也知識表示一位)
正則標記描述\d匹配一個數字字符(相當于 [0-9])
\D匹配一個非數字字符(相當于 [^0-9])
\w匹配一個單詞字符(字母、數字或下劃線,相當于 [a-zA-Z0-9_])
\W匹配一個非單詞字符(相當于 [^a-zA-Z0-9_])
\s匹配一個空白字符(空格、制表符、換行符等)
\S匹配一個非空白字符.匹配除換行符之外的任意字符
?5.數量表示(前面都表示只有一位,如果要表示多位就要用到數量表示)
正則標記描述
?匹配前面的元素零次或一次(可選)
*匹配前面的元素零次或多次(可重復)
+匹配前面的元素一次或多次(至少一次)
{n}匹配前面的元素恰好 n 次
{n,}匹配前面的元素至少 n 次
{n,m}匹配前面的元素至少 n 次但不超過 m 次
6.邏輯表示與 或 非
正則標記描述
正則表達式A可以是任意合法的正則表達式
正則表達式B可以是任意合法的正則表達式
正則表達式A|B匹配正則表達式A或正則表達式B
(正則表達式)將括號內的正則表達式作為一個組,可以對其進行量詞限定等操作

2. 基礎案例搭配Sting的常用方法
1.通過String替換(刪除非字母與非數字)

2.實現數字拆分
案例要求:一串字符串包含有數字,字母,要求只獲取字母并將其存入到字符串數組中。

?3.判斷一個數據是否為小數

?4.判斷一個字符串是否由日期組成,如果是則將其轉為Date類型

?5.驗證E-mail格式:

括號在正則表達式中用于分組,它們具有以下作用:
確定匹配的范圍:括號可將多個字符組合在一起,形成一個整體。例如,在
(cn|com|com\\.cn|net|gov)
中,括號內的內容表示一個選擇項,即可以匹配.cn
、.com
、.com.cn
、.net
或.gov
。控制優(yōu)先級:括號還可以控制子表達式的優(yōu)先級。正則表達式按照從左到右的順序進行解析,括號內的表達式會優(yōu)先匹配。這對于復雜的正則表達式非常有用,可以確保匹配和分組的順序符合預期。
提取分組內容:通過使用括號進行分組,可以將匹配到的內容提取出來。在 Java 中,通過正則表達式匹配后,可以使用
Matcher
對象的group(int)
方法來獲取相應分組的內容。

3.正則表達式java.util.regex包支持
由于String類其實停供的正則表達式是比較基礎的,要是嚴格一些則需要用到java.util,regex包的支持,該包有兩個核心的功能Pattern類(正則模式)與Macther類(匹配)
以下是兩個類常用的方法:
1.Pattern類
方法描述
compile(String regex)
將給定的正則表達式編譯成一個模式。matches(String regex, CharSequence input)
使用給定的正則表達式對輸入進行匹配操作,并返回匹配結果。split(CharSequence input)
根據給定的正則表達式,將輸入拆分為字符串數組,并返回結果。matcher(CharSequence input)
創(chuàng)建一個新的匹配器,用于在給定的輸入上執(zhí)行匹配操作。pattern()
返回當前模式的字符串表示形式。flags()
返回模式的標志,以整數形式返回。
這些方法可以幫助你使用正則表達式進行匹配、拆分和創(chuàng)建匹配器等操作。其中,常用的是
matches
、split
和matcher
方法,它們?yōu)槌R姷恼齽t表達式操作提供了便捷的功能。?
2.Matcher類
方法描述
find()
嘗試在輸入序列中查找下一個匹配項,并返回是否找到匹配項。group()
返回與前一次匹配操作相匹配的輸入子序列。start()
返回上次匹配操作的起始索引。end()
返回上次匹配操作的結束索引加?reset(CharSequence input)
重置匹配器,將其設置為新的輸入字符序列。replaceAll(String replacement)
使用給定的替換字符串替換所有匹配項,并返回替換后的結果。appendReplacement(StringBuffer sb, String replacement)
將當前匹配到的內容替換為指定的字符串,并將替換結果追加到給定的StringBuffer
對象中。appendTail(StringBuffer sb)
將輸入序列的其余部分追加到給定的StringBuffer
對象
這些方法可以幫助你在使用正則表達式進行匹配操作時,獲取匹配結果、替換匹配項和操作輸入序列等。其中,常用的是
find
、group
、replaceAll
和appendReplacement
方法,它們在實際的正則表達式處理中非常有用。?
案例使用:
1.Pattern編譯

2.Matcher


Name: John
Surname: Doe
Age: 25

4.練習鞏固
給一段HTML代碼"<font face="Arial,Serif" size="+2"color="red">"這段代碼要求對其內容進行拆分,拆分結果如下:
face Arial,Serif
size +2
color red
思路:首先要對元素標記<font>刪除,并且一句每一個屬性(使用空格拆分)獲取對應的數據內容,可以基于分組形式完成