1、什麼是正規表示式
正規表示式是一種進行資料篩選的表示式
2、原子
原子是正規表示式中最基本的組成單位,每個正規表示式中至少要包含乙個原子。常見的原子型別有:
a、普通字元作為原子
b、非列印字元作為原子
c、通用字元作為原子
d、原子表
實戰操作:
匯入模組:
import re
import re
>>>pat="yue"
>>>url=""
>>>result1=re.search(pat,url)#search函式從某個字串中尋找符合規則的內容 表示式相當於內容規則 第乙個引數對應規格,第二個引數是總的字串
>>>print(result1)
<_sre.sre_matchobject; span=(16, 19), match='yue'>
>>>url2=""
>>>result2=re.search(pat,url2)
>>>print(result2)
none
b、非列印字元作為原子
import re
\t #製表符 用於對齊
\n # 換行符
\w #通用字元 能夠匹配任意的字母數字下劃線
\d #匹配任意一十進位制數字
\w #匹配與\w相反的字元 匹配除了字母數字下劃線以外任意字元
\s #匹配任意乙個空白字元
\d #匹配除了十進位制數字外的任意字元
原子表:
pat="pyth[jsz]n"# 匹配pyth[中間或是j或是s或是中的乙個]n
>>>string="dgsfastgvepythjnagkle"
>>>result5=re.search(pat,string)
>>>print(result5)
<_sre.sre_matchobject; span=(10, 16), match='pythjn'>
3、元字元
*: 「s*」 匹配0次1次或多次前面字元 "ssss"
?:"s?" 匹配0次或1次 "ss" "s"
+ :"s+" 匹配1次或多次 ,不匹配0次
. : 匹配除了換行符外所有字元
: 匹配前面的原子恰好出現了3次 t
: 前面的原子至少出現了n次
:前面的原子至少出現了n次 至多出現了m次
()提取中間的內容
4、模式修正符
模式修正符,即可以在不改變正規表示式的情況下,通過模式修正符改變正規表示式的含義,從而實現一些匹配結果的調整等功能。
i :忽略大小寫
m :進行多行匹配
l:本地化識別匹配
u:根據unicode 字元 解析字元
s: 指的是點也 匹配換行符
import re
pat1="python"
pat2="python"
string="dgdfdskdjasgpythonhkloe"
rst1=re.search(pat1,string)
rst2=re.search(pat2,string,re.i)
print(rst1)
print(rst2)
5、貪婪模式與懶惰模式
貪婪模式就是盡可能多的去匹配 懶惰模式是盡可能少的去匹配
import re
pat1="p.*y"#貪婪模式
pat2="p.*?y"#懶惰模式
string="dgdfdskdjasgpyddadadythonhykloe"
rst1=re.search(pat1,string)
rst2=re.search(pat2,string)
print(rst1)
print(rst2)
<_sre.sre_matchobject; span=(12, 27), match='pyddadadythonhy'>
<_sre.sre_matchobject; span=(12, 14), match='py'>
6、正規表示式函式
正規表示式函式有:
re.match()函式 從字串頭開始匹配,如果字串首字母不匹配 直接返回none
re.search()在給定字串從左向右進行搜尋 只能給出乙個結果
re.sub()函式
全域性匹配函式:
re.compile(pat).findall(string)
7、常見正則匹配例項
匹配.com 或 .cn** 匹配**號碼
import re
pat1="[a-za-z]+://[^\s]*[.com|.cn]"
string='hadah'
rst1=re.compile(pat1).findall(string)
print(rst1)
8、爬取csdn的乙個課程 ,並自動提取出qq群
import re
importurllib.request
data=urllib.request.urlopen("").read()
rst1=re.compile(pat).findall(str(data))
print(rst1)
9、提取出版社資訊
網路爬蟲(8) 正規表示式
w 匹配字母數字及下劃線 w 匹配f非字母數字下劃線 s 匹配任意空白字元,等價於 t n r f s 匹配任意非空字元 d 匹配任意數字 d 匹配任意非數字 a 匹配字串開始 z 匹配字串結束,如果存在換行,只匹配換行前的結束字串 z 匹配字串結束 g 匹配最後匹配完成的位置 n 匹配乙個換行符 ...
爬蟲 正規表示式
正規表示式 regular expression 是一種字串匹配的模式 pattern 它可以檢查乙個字串是否含有某種子串 替換匹配的子串 提取某個字串中匹配的子串。匯入正則模組 importre 字元匹配 rs re.findall abc adc print rs rs re.findall a...
python爬蟲之正規表示式
search函式 import re re庫 pattern re.compile r worlda compile編譯生成可操作物件 m re.search pattern,hello world search的結果有一些屬性,其 中group 返回 如果查詢成功,則返回匹配的段落 if m pr...