天天看點

python學習筆記:正規表達式 leah

python學習筆記:正規表達式

用标準化代碼(正規表達式)比對字元串

一般

正規表達式 字元串
\d 數字
\w 數字或字母
\s 空格或tab等空白符
. 單個任意字元
* 任意個字元 (含零個)
+ 至少一個字元
零或一個字元
{n} n個字元
{m,n} m到n個字元

進階

正規表達式 字元串
[0-9a-zA-Z\ _] 一個數字字母下劃線組成的字元串
[a-zA-Z\ _] [0-9a-zA-Z\ _] * 首位不是數字的(如上的)字元串
a|b a或者b
^ 行首
$ 行尾

說明:沒有^ 和$的時候,可以用字元串的一部分比對整體

使用

在字元串前添加字首r,例如r’a\b’,避免\被用于轉義

import re

re.match(正規表達式,字元串)

成功傳回一個match對象,失敗傳回none

re.split(r’[\s\,]+’ , ‘a,b, c d’)

傳回 [‘a’ , ‘b’ , ‘c’ , ‘d’]

分組

m = re.match(r’^(\d{3})-(\d{3,8})$’, ‘010-12345’)

m.group(0)為‘010-12345’

m.group(1)為‘010’

m.group(2)為‘12345’

貪婪比對

\d+會盡可能的多比對字元

\d+?會根據後文盡可能少比對

預編譯

re_telephone=re.compile(r’^(\d{3})-(\d{3,8})$’)

re_telephone.match(‘010-12345’).groups()

輸出(‘010’, ‘12345’)

繼續閱讀