Python正規表示式總結

2021-09-25 00:17:05 字數 2109 閱讀 4374

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

- [abc]: 字元集合,一次只能匹配乙個字元,匹配a、b、c

- [^abc]: 字元集合,不是a/b/c

- [a-z]: 小寫字元

- [^a-z]: 不是小寫

- \b: 單詞邊界

- \b: 不匹配單詞邊界

- \d: [0-9]匹配1個數字

- \d: [^0-9]不匹配1個數字

- \s: 匹配乙個空白字元.包括製表符、換行符、空格

- \s: 非空白字元

- \w: 匹配[0-9a-za-z],包括中文

- \w: w之外的字元

使用 \ 轉義,反斜槓本身\

\r \n 轉義後代表回車、換行

- *     0次或者多次

- + 至少一次

- ? 表示前面的正規表示式重複0次或者1次

- 重複固定的n次

- 至少重複n次

- 重複n到m次;

x|y                 匹配x或者y; \b(a|b)\w+  以a或者b開頭的單詞

捕獲/分組(pattern): 捕獲或會自動分配組號,自動從1開始,0表示捕獲的全長

\數字 匹配對應的分組,剛好取到前面匹配到的內容;

(?:pattern) 不**獲,不要分組,保留『或』;\b(?:a|b)\w+

(?exp) 通過name訪問分組、python語法:(?pexp)

判斷一件事一定發生、一定不發生,一定是一定不是

(?=exp)    f(?=oo) f後面一定有oo出現;

(?<=exp) (?<=f)ood ood前面一定在前面有t

(?!exp) 一定沒有

(?常量

re.multiline | re.dotall | re.ignorecase

方法# 編譯、提高匹配效率

re.compile(pattern,flags=0)

# 單次匹配match

re.match(battern,string,flags=0) # 未編譯

regex.match(string,flags) # 已編譯

s = '1234abcd'

regex = re.compile('[ab]')

matcher = regex.match(s,4)

print(matcher)

-----

# 一直匹配search

re.compile(pattern,flags=0)

re.search()

regex.search()

# 全部匹配

# findall() 從左至右

matcher = regex.findall(s)

# finditer() 惰性求值

# 匹配替換

re.sub( )

regex.sub()

reget.subn(replacement ,string,count=0)

replacement 為bytes或者function;

s = "hello tom"

regex = re.compile('t\wm')

print(regex.sub("mageud.com",s,1))

# 分割字串

re.split(pattern,string,maxsplit=0,flags=0)

s='''01 one

02 two

03 three'''

regex = re.split('[\s\d]+')

# 分組

group(n) 0是返回整個匹配的字串

group('name') 命名分組

groups 所有的分組

groupdict() 返回所有命名的分組

# 練習

1. 匹配郵箱

[email protected]

^\w[\w\.-]*@\w[\w\-\.]*\.[a-z]

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

Python正規表示式總結

基礎匹配 d 可以匹配乙個數字,00 d 可以匹配 007 w 可以匹配乙個字母或者數字,00 w 可以匹配 007 或者 00a s 可以匹配乙個空格 可以匹配任意字元 匹配變長的字元,可以用 表示任意個字元 包括0個 用 表示至少乙個字元,用?表示0個或者1個字元,用表示n個字元,用表示n m個...

正規表示式總結

正規表示式用於操作字串的規則,這些規則由一些符號所組成。使用正規表示式可以進行更複雜的操作,而且這種複雜的操作要比方法短的多。功能 1,匹配。使用的是string類中的matches方法。2,切割。使用的string類split方法。3,替換。4,查詢。1,將正則規則通過pattern類中的stat...