位元組跳動Java面試全套真題解析在網際網路火了,程式設計師翻身之路
阿新 • • 發佈:2021-07-30
1. 正則表示式語法
1.1 字元與字元類
1 特殊字元:.^$?+*{}|
以上特殊字元要想使用字面值,必須使用進行轉義
2 字元類
1. 包含在[]中的一個或者多個字元被稱為字元類,字元類在匹配時如果沒有指定量詞則只會匹配其中的一個。
2. 字元類內可以指定範圍,比如[a-zA-Z0-9]表示a到z,A到Z,0到9之間的任何一個字元
3. 左方括號後跟隨一個,表示否定一個字元類,比如[0-9]表示可以匹配一個任意非數字的字元。
4. 字元類內部,除了之外,其他特殊字元不再具備特殊意義,都表示字面值。放在第一個位置表示否定,放在其他位置表示本身,-放在中間表示範圍,放在字元類中的第一個字元,則表示-本身。
5. 字元類內部可以使用速記法,比如d s w
3 速記法
. 可以匹配除換行符之外的任何字元,如果有re.DOTALL標誌,則匹配任意字元包括換行
d匹配一個Unicode數字,如果帶re.ASCII,則匹配0-9
D 匹配Unicode非數字
s匹配Unicode空白,如果帶有re.ASCII,則匹配中的一個
S 匹配Unicode非空白
w匹配Unicode單詞字元,如果帶有re.ascii,則匹配[a-zA-Z0-9_]中的一個
W 匹配Unicode非單子字元
1.2 量詞
1. ?匹配前面的字元0次或1次
2. *匹配前面的字元0次或多次
3. +匹配前面的字元1次或者多次
4. {m}匹配前面表示式m次
5. {m,}匹配前面表示式至少m次
6. {,n}匹配前面的正則表示式最多n次
7. {m,n}匹配前面的正則表示式至少m次,最多n次
注意點:
以上量詞都是貪婪模式,會盡可能多的匹配,如果要改為非貪婪模式,通過在量詞後面跟隨一個?來實現
https://mp.weixin.qq.com/s/aIKlTpxl8Jmwwt1Jvxj1yw
故鄉明