學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

例:判斷是否是手機號碼

未採用正則表達式

學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

re模塊介紹

常用函數

  1. re.match()函數:掃描整個字符串,返回從起始位置成功的匹配
  2. 語法:re.match(pattern, string, flags=0)
  3. pattern 匹配的正則表達式;string 要匹配的字符串;flags 標誌位,用於控制正則表達式的匹配方式,常見值如下:(re.I 忽略大小寫;re.M 多行匹配)
  4. re.search()函數:掃描整個字符串,並返回第一個成功的匹配(語法同上
  5. findall()函數:掃描整個字符串,並返回結果列表(語法同上
學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

匹配單個字符

  • . 匹配除換行符以外的任意字符
  • [123abc] []是字符集和,表示匹配方括號中所包含的任意一個字符
  • [^ Mark] 匹配除了 Mark 這幾個字母以外的所有字符,中括號裡的 ^ 稱為脫字符,表示不匹配集合中的字符
  • \d 匹配數字,效果同 [0-9]
  • \D 匹配非數字字符,效果同 [^0-9]
  • \w 匹配數字、字母和下劃線,效果同 [0-9a-zA-Z_]
  • \W 匹配非數字、字母和下劃線,效果同 [^0-9a-zA-Z_]
  • \s 匹配任意的空白符(空格、換行、回車、換頁、製表),效果同 [ \n\r\f\t]
  • \S 匹配任意的非空白符,效果同 [^ \n\r\f\t]
學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

學會正則表達式,爬遍所有網站都不怕!最詳細的正則入門教程!

代碼塊

# 對 * 進行轉義,進行非貪婪匹配print(re.findall(r"//*.*?/*/", r"/* one */ /* two */ ")) # ['/* one */', '/* two */']

大家可以去寫一下關於 QQ 、郵箱、電話、用戶名、密碼、IP地址、URL的正則表達式來練下手。

是不是很強大,私信小編007即可獲取數十套PDF哦!


分享到:


相關文章: