1. 程式人生 > >python學習第十四節(正則)

python學習第十四節(正則)

image all flags 正則 asdf alt afa images lag

python2和python3都有兩種字符串類型
str
bytes

re模塊
find一類的函數都是精確查找。
字符串是模糊匹配

findall(pattern,string,flags)

技術分享

replace函數
‘hello python‘.replace(‘p‘,‘P‘)
‘hello Python‘

a=‘sadfadf232wwewfr323rwef34534trwef‘
import re
w=re.findall(‘\d‘,‘sadfadf232wwewfr323rwef34534trwef‘)
w=re.findall(‘\d+‘,‘sadfadf232wwewfr323rwef34534trwef‘)
print(w)

re.findall 將所有符合規則的結果保存到一個列表裏。
re.findall(pattern,string)
key: 元字符 (有特殊功能的字符)
通配符:
. 點 能匹配任何一個除換行符以外的符號,也就是說點能代表任何符號。
* [0,+00] 0到無窮次的範圍
+ [1,+00] 1到無窮次的範圍
? [0,1] 0個或1個
{} {n,m} 可以寫{3,5} 3到5個 也可以寫{3} 3個 ,也可以寫{0,} 無窮次的意思

技術分享

字符集:
[] 用法,re.findall("a[bd]c","safasdfaefsdf") 裏面[bd]是或者的關系,或者是b或者是d 都顯示出來
如果[]中加了標點符號,標點符號和字母是同級別的 過濾的是a,b等內容。
[] 中如果加上通配符,那麽並沒有通配符的意義,只是匹配相關符號內容的東西
[0-9] 只是匹配一個數字,如果需要找4位的數字,[0-9]{4}
[] 字符集中 有特殊意義的字符為: - ^ \

^ 開始匹配
$ 結尾匹配

():分組

技術分享

(ad) 匹配這個組
(ad)+yuan 圖中下面這個匹配的是藍色內容,但是分組優先顯示()分組內的內容,所以結果是ad

技術分享

如上圖所示,可以取消()的優先級,將藍色內容打印出來,?:這個語法就是取消優先級,不光顯示分組,還可以顯示其他內容。

技術分享

如上圖,該打印出的內容為3,因為數字很多,匹配到的是yuan,但是顯示分組內容3

技術分享

取消分組特性

技術分享

如上圖,|是或的意思
如果或後面沒有匹配到則顯示空。

技術分享

如上圖,上面這種可以直接匹配出網址。

\ 轉譯,能將字母轉譯成特殊意義,也能將特殊意義的字符轉移成普通字符
\d 代表0-9的任意一個字符
\w 代表任意數字或字母的字符

技術分享

\. 點變成普通符號

技術分享

復雜一點的

技術分享

技術分享

\s 取出來有個空格

技術分享

search方法
找到一個對應的就不再向後匹配

技術分享

match方法
只匹配開頭,如果開頭沒有則返回None

技術分享

作業

技術分享

分組給組起名字,根據名字來取內容

技術分享

字符集中可以用的特殊符號

技術分享

|管道符

技術分享

技術分享

python學習第十四節(正則)