最近我對python的網路爬蟲產生了興趣於是先去學習了python的正規表示式
畢竟這是網路爬蟲的基礎
以下是我做的總結
普通字元做原子
\n換行符
原子表
#coding=gbk
'''created on 2023年7月12日
@author: lenovo
'''import re
string=
"taoyunjiaoyun"
#普通字元做原子
pat=
"yun"
result=re.search(pat,string)
print
(result)
#
#\n換行符
string=
'''taondiadji
saicashfi
'''pat=
'\n'
result=re.search(pat,string)
print
(result)
string=
'''taondiadji787974
saicashfi
'''pat=
'\w\d\d\d\w'
result=re.search(pat,string)
print
(result)
#原子表
#元字元
.除換行符外任意乙個字元
^開始位置
$結束位置
*0\1\多次
?0\1次
+1\多次
恰好n次
至少n次
|或()模式單位
'''string=
'''taoyunnndiadji787974saicashfi'''
pat=
'tao...'
pat=
'^tao...'
pat=
'tao.*'
pat=
'taoyun+'
pat=
'yun'
result=re.search(pat,string)
print
(result)
#模式修正符
'''i匹配是忽略大小寫*
m多行匹配*
l本地化識別匹配
u unicode
s 讓.匹配包括換行符*
'''string=
"python"
pat=
'pyt'
rst=re.search(pat, string,re.i)
print
(rst)
#貪婪模式和懶惰模式
string=
"poythony"
pat=
'p.*y'
#貪婪模式
pat1=
"p.*?y"
#懶惰模式,精準
rst=re.search(pat, string,re.i)
rst1=re.search(pat1, string,re.i)
print
(rst)
print
(rst1)
#正規表示式函式
#1.match
#從頭匹配
string=
"poythony"
pat=
'o.*y'
#貪婪模式
pat1=
"o.*?y"
#懶惰模式,精準
rst=re.match(pat, string,re.i)
rst1=re.search(pat1, string,re.i)
print
(rst)
print
(rst1)
#2.search
#3.全域性匹配函式
string=
'hpochyouychnhpohuy'
pat1=
"o.*?y"
#懶惰模式,精準
對於學習之後的一些例項檢測
#例項匹配.com 和.cn**
string=
pat=
"[a-za-z]+://[^\s]*[.com|.cn]"
rst1=re.
compile
(pat)
.findall(string)
print
(rst1)
#例項匹配**號碼
string=
'shdbcd234-224442455xeeerjwdndf9939-2324435555342jnfewfeu'
pat=
"\d-\d|\d-\d"
rst=re.
compile
(pat)
.findall(string)
print
(rst)
python正規表示式元字元 正規表示式
字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...
Python 正規表示式
1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...
Python正規表示式
學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...