python3 牛逼的正則模組re

2021-10-08 15:59:16 字數 4278 閱讀 6451

牛刀小試:

("兼職模特空姐****.txt"

,encoding=

'utf-8'

)phone_number= re.findall(

"[0-9]"

,f.read())

print

(phone_number)

re 匹配語法:

講解:1:re.split()匹配到的字元就是分隔點,沒有匹配到的就''表示,

print

(re.split(

"[0-9]"

,"shimmer1you1can2be3better"))

print

(re.split(

"[a-z]"

,"shimmer1you1can2be3better"

))

執行結果:

['shimmer'

,'you'

,'can'

,'be'

,'better'][

'','',

'','',

'','',

'','1','',

'','1','',

'','2','',

'3','',

'','',

'','',

2:re.findall只匹配字元,不會出現沒匹配到是地方用其他字元代替

print

(re.findall(

"[a-z]"

,"shimmer1you1can2be3better"

))

執行結果:

['s'

,'h'

,'i'

,'m'

,'m'

,'e'

,'r'

,'y'

,'o'

,'u'

,'c'

,'a'

,'n'

,'b'

,'e'

,'b'

,'e'

,'t'

,'t'

,'e'

,'r'

]

3:re.sub()匹配到的字元進行替換

sub(pattern, repl, string, count=

0, flags=0)

: 從上面的**中可以看到re.sub(

)方法中含有5個引數,下面進行一一說明(加粗的為必須引數):

(1)pattern:該引數表示正則中的模式字串;

(2)repl:該引數表示要替換的字串(即匹配到pattern後替換為repl),也可以是個函式;

(3)string:該引數表示要被處理(查詢替換)的原始字串;

(4)count:表示是要替換的最大次數,而且必須是非負整數,該引數預設為0,即所有的匹配都會被替換;

(5)flags:表示編譯時用的匹配模式(如忽略大小寫、多行模式等),數字形式,預設為0。

print

(re.sub(

"abc"

,"abc"

,"skjdldfabclas;dkabc"))

print

(re.sub(

"abc"

,"123"

,"skjdzabcldfabcabclas;dkabc"))

print

(re.sub(

"abc"

,"abc"

,"skjdldfabclas;dkabc"

,count=1)

)print

(re.sub(

"[a-z]"

,"1"

,"skjdldfabclas;dkabc"))

print

(re.sub(

"[a-z]"

,"9"

,"skjdldfabclas;dkabc"

))

執行結果:

4:re.fullmatch()全部匹配:乙個字元不同就不輸出

5:re.complie():先提前定義,之後可以直接用

p=re.

compile

("[1-9]"

)print

(p.search(

"18296356583568"

))

執行結果:

; span=(0

,11), match=

'18296356583'

>

學習學的就是正則的規則:點開它正則規則清晰掌握

import re

print

(re.search(

".",

"shimmer"))

#.匹配任意字元

print

(re.search(

"^s123"

,"s123sdhjjd"))

#^匹配開頭

#分組匹配

特例說明:將字串全部匹配出來

s=

"123+234*123-458/256"

print

(re.split(

"\-\+\*\/"

,s))

執行結果:

['123+234*123-458/256'

]

應用:匹配**號碼:

import re

defis_phone

(ok, false=

none):

p=re.

compile

("[1-9][0-9]"

)if p.match(ok)

:return

true

else

:return false

defchcek_phone

(ok)

:if is_phone(ok)

:print

("yes ok"

)else

:print

("you are wrong")p=

input

("請輸入乙個**號碼:"

python3使用 python3使用模組

python內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def tes...

Python3 使用模組

python本身就內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys def ...

python3 常用模組 RE模組

一.常用正規表示式符號和語法 匹配所有字串,除 n以外 表示範圍 0 9 匹配前面的子表示式零次或多次。要匹配 字元,請使用 匹配前面的子表示式一次或多次。要匹配 字元,請使用 匹配字串開頭 匹配字串結尾 re 轉義字元,使後乙個字元改變原來的意思,如果字串中有字元 需要匹配,可以 或者字符集 re...