python 正則re模組

2022-08-19 03:18:13 字數 2629 閱讀 5906

1. 正則各種字元表示的含義

'.'

預設匹配除\n之外的任意乙個字元,若指定flag dotall,則匹配任意字元,包括換行'^

'匹配字元開頭'*

' 匹配*號前的字元0次或多次,re.findall("

ab*","

cabb3abcbbac

") 結果為['

abb', '

ab', 'a'

]'+' 匹配前乙個字元1次或多次,re.findall("

ab+","

ab+cd+abb+bba

") 結果['

ab', '

abb']'

?'匹配前乙個字元1次或0次''

匹配前乙個字元m次

'' 匹配前乙個字元n到m次,re.findall("

ab","

abb abc abbcbbb

") 結果'

abb', '

ab', '

abb']'

|' 匹配|左或|右的字元,re.findall("

abc|abc

","abcbabccd

") 結果'

abc、abc''

\a' 只從字元開頭匹配,re.search("

\aabc

","wangzaiabc

") 是匹配不到的'\z

'匹配字元結尾,同$'\d

' 匹配數字0-9'\d

'匹配非數字'\w

' 匹配[a-za-z0-9]'\w

' 匹配非[a-za-z0-9]'\s

' 匹配空白字元、\t、\n、\r , re.search("

\s+","

ab\tc1\n3

").group() 結果 '\t'

'(?p...)

' 分組匹配 re.search("

(?p[0-9])(?p[0-9])(?p[0-9])

","371481199306143242

").groupdict()

#結果

2. re模組常用函式用法

re.match    從頭開始匹配

re.search 匹配包含,只找到第乙個符合要求

print(re.search('

\d+\.?\d*[*/]\d+\.?\d*

', '

9-3.33+10*568/14+30.123*2998

').group()) #

# 匹配整數或者浮點數,判斷是否有乘除號

re.findall 把所有匹配到的字元放到以列表中的元素返回

print(re.findall('

\d+\.?\d*[*/]\d+\.?\d*

', '

9-3.33+10*568/14+30.123*2998'))

re.split 以匹配到的字元當做列表分隔符

print(re.split("

[0-9]+

", "

ab12cd34ef"))

re.sub 匹配字元並替換

print(re.sub("

[0-9]+

", "

wangzai

", "

1.1.2

")) #

# re.sub(pattern, replace, string),把匹配到的pattern替換成replace

3. 匹配**號碼

phone = "

my phone number is 18676383598

"m = re.search("

(1)([358]\d)

", phone)

print(m.group())

4. 匹配ip

ip = "

inet 192.168.1.211 netmask 255.255.255.0 broadcast 192.168.1.255

"m = re.search('

\d\.\d\.\d\.\d

', ip) #

# search只能找到第乙個符合要求的,並且要通過group()來獲取對應的值

print

(m.group())

n = re.findall('

\d\.\d\.\d\.\d

', ip) #

# findall是獲取所有符合要求的值

print(n)

5. 匹配郵箱

email = "

[email protected] doubi

"m = re.search(r"

[0-9_.a-z]@[0-9.a-z]

", email)

print(m.group())

6. 匹配**

website = "

uooc

"m = re.search(r"

(\w+)://[0-9.a-z]")

print(m.group())

正則re模組

匹配任意乙個字元 以某個字元開頭 以某個字元結尾 匹配0次或多次 匹配一次或多次 匹配0次或1次 匹配n次 匹配n次或多次 匹配n次到m次 字符集,非 a z 匹配小寫字母a到z的任意字母一次 a z 匹配除了小寫字母a到z之外的任意字元一次 d 匹配數字0 9,0次或多次 d匹配任何十進位制數,0...

re正則模組

1.正規表示式的常用符號 預設匹配除 n之外的任意乙個字元,若指定flag dotall,則匹配任意字元,包括換行 匹配字元開頭,若指定flags multiline,這種也可以匹配上 r a nabc neee flags re.multiline 匹配字元結尾,或e.search foo bfo...

python常用模組之re模組(正則)

python種的re模組常用的5種方法,分別是re.match re.search re.findall re.split re.sub。在介紹五種方法之前,需要介紹一下正則的基礎。表示任意字元,除 n以為 轉義字元 字符集,表示取其中任意乙個字元。比如 abc d 可以匹配到ad bd cd。d ...