正則元字元

2021-09-25 14:04:20 字數 2556 閱讀 8344

.		匹配除換行符以外的任意字元

[0123456789] 是字元集合,表示匹配方括號中所包含的任意乙個字元

[good] 匹配good中任意乙個字元

[a-z] 匹配任意小寫字母

[a-z] 匹配任意大寫字母

[0-9] 匹配任意數字

[0-9a-za-z] 匹配任意的數字和字母

[0-9a-za-z_]匹配任意的數字,字母以及下劃線

[^good] 匹配除了good這幾個字母以外的所有字元,中括號裡的^稱為脫字元,表示不匹配集合中的字元

[^0-9] 匹配所有的非數字字元

\d 匹配數字,效果同[0-9]

\d 匹配非數字字元,效果同[^0-9]

\w 匹配數字,字母和下劃線,效果同[0-9a-za-z_]

\w 匹配非數字,字母和下劃線,效果同[^0-9a-za-z_]

\s 匹配任意的空白符(空格、回車、換行、製表、換頁),效果同[\r\n\t\f]

\s 匹配任意的非空白符,效果同[^\f\n\r\t]

^	首行匹配,和在裡的^不是乙個意思

$ 行尾匹配

\a 匹配字串開始,它和^的區別是,\a只匹配整個字串的開頭,即使在re.m模式下也不會匹配它行的行首

\z 匹配字串結束,它和$的區別是,\z只匹配整個字串的結束,即使在re.m模式下也會匹配它行的行尾

\b 匹配乙個單詞的邊界,也就是指單詞和空格的位置

'er\b'可以匹配never,不能匹配nerve

\b 匹配非單詞邊界

print(re.search("^good","you are a good man"))

print(re.search("man$","you are a good man"))

print(re.search("^good","you are a good man",re.m))

print(re.search("\agood","you are a good man",re.m))

print(re.search("man$","you are a good man",re.m))

print(re.search("man\z","you are a good man",re.m))

print(re.search(r"er\b","never"))

print(re.search(r"er\b","neve"))

print(re.search(r"er\b","never"))

print(re.search(r"er\b","neve"))

說明:下方的x,y均為假設的普通字元,n,m(非負整數),不是正規表示式的元字元

(xyz) 匹配小括號內的xyz(作為乙個整體去匹配)

x? 匹配0個或者1個x

x* 匹配0個或者任意多個x(.*表示匹配0個或者任意多個字元(換行符除外))

x+ 匹配至少乙個x

x 匹配確定的n個x(n是乙個非負整數)

x 匹配至少n個x

x 匹配至少n個最多m個x,注意n<=m

x|y |表示或,匹配的是x或y

print(re.findall(r"a?","aaa"))#非貪婪匹配,盡可能少的匹配

print(re.findall(r"a*","aaabaa"))#貪婪匹配,盡可能多的匹配

print(re.findall(r"a+","aaabaaaa"))#貪婪匹配,盡可能多的匹配

print(re.findall(r"a","aaabaaaa"))

print(re.findall(r"a","aaabaaaa"))#貪婪匹配,盡可能多的匹配

print(re.findall(r"a","aaabaaaa"))

print(re.findall(r"(a|a)n","anaabaaaan"))

提取:you...man

str1 = "you are a good man,you are a nice man ,you are a great man,you are a..."

print(re.findall(r"you.*?man",str1))

'''*? +? x? 最小匹配,通常都是盡可能多的匹配,可以使用這種貪婪匹配(?:x) 類似於(xyz),但是不表示乙個組

'''#注釋:/* part1 */ /* part2 */

print(re.findall(r"/*.*?/*/",r"/* part1 */ /* part2 */"))

(.*?)有時可以起到奇妙的作用

re.i 使匹配對大小寫不敏感

re.l 做本地化識別(locale-aware)匹配

re.m 多行匹配,影響 ^ 和 $

re.s 使 . 匹配包括換行在內的所有字元

re.u 根據unicode字符集解析字元。這個標誌影響 \w, \w, \b, \b.

re.x 該標誌通過給予你更靈活的格式以便你將正規表示式寫得更易於理解。

正則元字元

匹配除換行符以外的任意字元 w 匹配字母或數字或下劃線 s 匹配任意的空白符 d 匹配數字 b 匹配單詞的開始或結束 匹配行的開始 匹配行的結束 重複零次或更多次 重複一次或更多次 重複零次或一次 重複n次 重複n次或更多次 重複n到m次 w 匹配任意不是字母,數字,下劃線,漢字的字元 s 匹配任意...

正則 元字元

正則用來判斷乙個字串是否符合這個規則,還可以把符合規則的內容捕獲到 test 方法 用來判斷乙個字串是否符合這個規則 exec 方法 把符合規則的內容捕獲到 元字元 具有特殊意義的字元 轉義字元,可以把特殊意義的字元轉成普通字元的意思,或普通字元轉特殊意義 匹配所有字元 除了換行符 以某個字元開頭 ...

正則的常用元字元

正則的常用元字元 正規表示式是用於進行文字匹配的工具,是對字串執行模式匹配的強大工具。這讓我們可以在字串裡進行搜尋 查詢,但是必須是在我們事先給定的字元中,匹配我們事先給定的字元,那我們就來了說一下元字元,元字元常用的有以下幾種 1 它可以查詢任意給定的字元,除了換行付符和行結束符。2 w 匹配給定...