python中的正規表示式總結

2021-10-06 15:52:32 字數 1053 閱讀 5479

\d:匹配乙個數字

\w:可以匹配乙個字母或數字,以及下劃線

.:可以匹配任意字元

*:表示任意個數目(包括0個)

+:表示至少乙個

?:表示0個或1個

:表示n個

:表示第m-n個

可以用表示範圍:[0-9a-za-z_]+可以匹配至少由乙個數字、字母或者下劃線組成的字串

a|b:可以匹配a或b,如(p|p)ython可以匹配』python』或者』python』。

^表示行的開頭 ^\d表示必須以數字開頭。

$表示行的結束,\d$表示必須以數字結束。

正則匹配預設是貪婪匹配,也就是預設匹配盡可能多的字串

>>> re.match(r'^(\d+)(0*)$', '102300').groups()

('102300', '')

(\d+)把數字都匹配完了,(0)*只能匹配空字串

加個?可以讓(\d+)採用非貪婪匹配

>>> re.match(r'^(\d+?)(0*)$', '102300').groups()

('1023', '00')

使用正規表示式的時候,re模組內部會做倆件事。

1.編譯正規表示式,如果正規表示式的字串本身不合法,會報錯;

2.用編譯後的正規表示式去匹配字串。

如果乙個正規表示式要重複使用幾千次,出於效率的考慮,可以預編譯該正規表示式,接下來重複使用時就不需要編譯這個步驟了,直接匹配:

>>> import re

# 編譯:

>>> re_telephone = re.compile(r'^(\d)-(\d)$')

# 使用:

>>> re_telephone.match('010-12345').groups()

('010', '12345')

>>> re_telephone.match('010-8086').groups()

('010', '8086')

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

非負整數 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正規表示式總結

匹配除換行符意外的任意字元 abc 字元集合,一次只能匹配乙個字元,匹配a b c abc 字元集合,不是a b c a z 小寫字元 a z 不是小寫 b 單詞邊界 b 不匹配單詞邊界 d 0 9 匹配1個數字 d 0 9 不匹配1個數字 s 匹配乙個空白字元.包括製表符 換行符 空格 s 非空白...

Python正規表示式總結

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