目錄二、re模組
正規表示式:一些有特殊含義的字元組合到一起,形成一套規則,用於匹配字串的。
用途:1、檢測字串是否合法2、從大檔案中找到符合規則的內容放到字元組和非字元組中表示所有
'.' 預設匹配除\n之外的任意乙個字元
'^' 匹配字元開頭
'$' 匹配字元結尾
'*' 匹配*號前的字元0次或多次
'+' 匹配前乙個字元1次或多次
'?' 匹配前乙個字元1次或0次
'' 匹配前乙個字元m次
'' 匹配前乙個字元n到m次
'|' 匹配|左或|右的字元
'(...)' 分組匹配, re.search("(abc)a(123|45)", "abcabca456c").group() 結果為'abcabca45'
'\a' 只從字元開頭匹配
'\z' 匹配字元結尾,同$
'\d' 匹配數字0-9
'\d' 匹配非數字
'\w' 匹配[a-za-z0-9],還包括下劃線『_』
'\w' 匹配非[a-za-z0-9]
's' 匹配空白字元、\t、\n、\r
簡單示例:
# 字元組
# [abc] 乙個字元組只表示乙個字元位置上
# [0-9] 根據ascll碼
# [a-z]
# [a-z]
# [a-za-z] 大小寫 只有-前後才有大小比較
# [0-9] -->\d 表示匹配一位任意數字 digit
# [0-9a-z_] -->\w 表示數字字母下劃線 word
# 空格\tab\enter --> |\t|\n
# -->\s 表示所有空白,包括空格、tab、回車
# 正規表示式中表示匹配的內容的符號都是正則中的元字元
# \w 非數字字母下劃線
# \d 非數字
# \s 非空白
# [\d] \d 相同
# [\d\d][\w\w][\s\s] 匹配所有
# . 表示匹配除了換行符之外的任意乙個字元
# [^1] 表示非字元組,除了1以外的
# [^\d] 表示匹配所有的非數字
# ^ 表示匹配乙個字串的開始
# $ 表示匹配乙個字串的結尾
#^a.$ 在adacad這個字串中什麼也匹配不上
# ad|bc 匹配ad或bc,優先匹配左邊的,不匹配右邊,所以長字元在左
# 在www.中可以加\轉義.
# www\.(oldboy|baidu|taobao)\.com 匹配該三個**
#\b 匹配單詞的邊界
# 記憶元字元
# \d \w \s \t \n
# [^]
# ^ $
# | ()
# 乙個元字元只能匹配一位
表示匹配n次
表示至少匹配n次
表示至少n次,至多m次
? 表示匹配0或1次
+ 表示一次或多次
* 表示0次或多次
貪婪匹配,在量詞範圍允許的情況下盡量多的匹配內容
\d\d6 187246693634973618728 結果:一直匹配到最後乙個6,貪婪匹配回溯演算法
非貪婪(惰性匹配)
########## .*?x 表示匹配字元 任意多次數,但是遇到x就停止 爬蟲
########## .*x 表示匹配字元 任意多次數,但是遇最後乙個x就停止 爬蟲
\d?6 非貪婪,在條件允許的條件下盡量少的匹配,此例中至少匹配3次後在匹配的第乙個6後停止
re,math 從頭開始匹配
re.search 匹配包含
re.findall 把所有的匹配到的字元放到列表中,以列表中的元素返回
re.split 以匹配到的字元當作列表分隔符
re.sub 匹配字元並替換
re.fullmatch 全部匹配
re模組和正則
正規表示式 就是用來篩選字串中特定內容的一串具有某種邏輯規則的字元組成。正規表示式不是python獨有的,而是一門獨立的技術,它在所有的程式語言中都有使用,在python中使用就必須依賴於re模組。正則的應用場景 比如,爬蟲,資料分析。正則的使用某些特定邏輯的字元構造的 可以簡化我們的 的冗餘。看以...
正則re模組
匹配任意乙個字元 以某個字元開頭 以某個字元結尾 匹配0次或多次 匹配一次或多次 匹配0次或1次 匹配n次 匹配n次或多次 匹配n次到m次 字符集,非 a z 匹配小寫字母a到z的任意字母一次 a z 匹配除了小寫字母a到z之外的任意字元一次 d 匹配數字0 9,0次或多次 d匹配任何十進位制數,0...
re正則模組
1.正規表示式的常用符號 預設匹配除 n之外的任意乙個字元,若指定flag dotall,則匹配任意字元,包括換行 匹配字元開頭,若指定flags multiline,這種也可以匹配上 r a nabc neee flags re.multiline 匹配字元結尾,或e.search foo bfo...