跟之前在js中所見到的正規表示式是類似的
操作符說明例項.
表示單個字元
[ ]字符集,對單個字元給出取值範圍
[abc]表示abc [a-z]不愛告訴a到z單個字元
[ ^ ]
非字符集,對單個字元給出排除範圍
[^abc]表示非a或非b或非c的單個字元
*前乙個字元0次貨無限次擴充套件
abc*表示ab、abc、abcc、abccc
+前乙個字元1次貨無限次擴充套件
abc+表示abc、abcc、abccc
?前乙個字元0次貨1次擴充套件
abc?表示ab、abc
|左右表示式任意乙個
abc|def表示abc、def
擴充套件前乙個字元m次
abc表示abbc
擴充套件前乙個字元m到n次
abp表示abc、abbc
^匹配字串開頭
^abc表示abc且在乙個字串的開頭
$匹配字串結尾
abc$表示abc且在乙個字串的結尾
()分組標記,內部職能使用|操作符
(abc)表示abc,(abc|def)表示abc、def
\d數字,等價於【0-9】
\w單詞字元,等價於【a-za-z0-9_】
函式說明
re.search()
在乙個字串中搜尋匹配正規表示式的第乙個位置,返回match物件
re.findall()
搜尋字串,以列表型別返回全部能匹配的子串
re.match()
從乙個字串的開始位置起匹配正規表示式,返回match物件
re.split()
將乙個字串按照正規表示式匹配進行分割,返回列表型別
re.finditer()
搜尋字串,返回乙個匹配結果的迭代型別,每乙個迭代元素是match物件
re.sub()
在乙個字串中替換所有匹配正規表示式的子串,返回替換後的字串
re庫中包含的一些可選標誌修飾符來控制匹配的模式
修飾描述
re.i
是匹配對大小寫不敏感
re.l
做本地化識別(locale-aware)
re.m
多行匹配,映像^和$
re.s
使.匹配包括換行再被的所有字元
re.u
根據unicode字符集解析字元,這個標誌映像\w,\w,\b,\b
re.x
該標誌通過給予更多靈活的格式以便將正規表示式寫的更易於理解
import1.從原始碼中獲取詳細字串片段:repat=re.compile("
aa") #
此處的aa,是正規表示式,用來驗證其他字串
m=pat.search("
aabcd
") #
search字串被校驗的內容
#輸出結果會顯示查詢到乙個匹配的位置#
直接去進行匹配:
m=re.search("
asd","
aaasd
")#前面是規則,後面是進行匹對的物件
(m)
#使用findall匹配:
print(re.findall("
[a-z]
"),"
asffsaogugfu
")#輸出多個單個字元
print(re.findall("
[a-z]+
"),"
asffsaogugfu
")#輸出多個多字串#
sub替換
print(re,sub("
a","
a","
abcdasd
")) #
找到a用a替換,在第三個字串查詢#
r(去除轉義\的影響),建議在正規表示式中,被比較的字串前面加上乙個r
a=r"
\aabd-\"
print(a)
import2.標籤解析:(承接上面的內容)refindlink=re.compile(r'')
#findimgsrc=re.compile(r'
',re.s)#
re.s忽略換行符
#影片片名
findtitle=re.complie(r'
(.*))
#影片評分
findrating=,,,,,,,,,,,,,,,,,,,,,,
#獲取到頁面資料並儲存到html中
html=askurl(url)#
注意解析資料:
soup=beautifulsoup(html,"
html.parse")
for item in soup.find_all('
div',class_="
item
"): #
找到符合要求的字串,形成列表
data= #
儲存一部電影的所有資訊
item=str(item)
#獲取詳情資訊
link=re.findall(findlink,item)[0]#
注意:這裡使用findall是吧findlink中正規表示式在item中查詢並將其賦值給link
data= #儲存一部電影的所有資訊
link=re.findall(findlink,item)[0]
#如果遇到了多個資料的返回物件;
title=re.findall(findtitle,item)#
標題可能會有中文名和英文名
if(len(titles)==2):
ctitle=titles[0]
otitle=titles[1].replace("
/"."")#
去掉無關符號,去掉/符號
else:'
')#外國名字留空
#同時也可以對用re提取到的字串進行替換或者增刪改查
bd=re.findall(findbd,item[0])
bd=re.sub('
(\s+)?
',"",bd) #
去掉 bd=re.sub('
/',"
",bd)#
替換/去掉前後空格之後的內容
#以上這些都是往乙個data電影資訊列表中加入
#想要得到多個電影資訊,使用for迴圈,然後放到datalist中就好了
python 正規表示式 re
match 和 search 的區別 match是從字串開頭匹配,而search是在整個字串中匹配。如 p re.compile a z p.match message none 因為開頭是 因此無法匹配 而 m p.search message print m re.matchobject ins...
python正規表示式 re
re.match 嘗試從字串的開始匹配乙個模式,如 下面的例子匹配第乙個單詞。import retext jgood is a handsome boy,he is cool,clever,and so on.m re.match r w s text ifm print m.group 0 n m...
python正規表示式(re)
在python中re模組用於對正規表示式 regular expression 的支援。正規表示式是可以匹配文字片段的模式。一 正規表示式的書寫 1 萬用字元 點 可以匹配任何字元 除了換行符 如 ike 可以匹配 bike like 等 2 對特殊字元進行轉義 在正規表示式中如果是引用特殊字元作為...