牛刀小試:
("兼職模特空姐****.txt"
,encoding=
'utf-8'
)phone_number= re.findall(
"[0-9]"
,f.read())
(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...