1. 概念
正則表達式是一種用來匹配字符串的強有力的武器.設計思想:用一種描述性的語言來給字符串定義一個規則,凡是符合規則的字符串,就認為它"匹配"【合法】否則就是不匹配[不合法]舉例:beijinglishao@163.com
2. 規則
1.行定位符:'HiPython Hi 劉慶東老師'
'^Hi' 匹配以Hi開始的字符串'老師$' 匹配以老師結尾的字符串
2.元字符
3. 限定符
4.字符類[aeiou]匹配元音 [\u4e00-\u9fa5] 匹配漢字的5.排除類
[^a-zA-z]6.選擇字符
|
[a-z]|[0-9]7.轉義字符
\
[1-9]{1,3}\.8.分組
()
(\.[0-9{1,3}]){3}
3. 使用正則表達式
使用re模塊
1、re.compile(pattern,flags = 0 )
將正則表達式模式編譯為正則表達式對象,可使用match(),search()以及下面所述的其他方法將其用于匹配2、re.search(pattern,string,flags = 0 )掃描字符串以查找正則表達式模式產生匹配項的第一個位置 ,然后返回相應的match對象。None如果字符串中沒有位置與模式匹配,則返回;否則返回false。請注意,這與在字符串中的某個點找到零長度匹配不同3、re.match(pattern,string,flags = 0 )
如果字符串開頭的零個或多個字符與正則表達式模式匹配,則返回相應的匹配對象。None如果字符串與模式不匹配,則返回;否則返回false。請注意,這與零長度匹配不同。
代碼演示:
import re #1.引入re模塊#2.定義校驗手機號的正則表達式 11 13*+8位
pattern = r'(13[4-9]\d{8})$|(15[01289]\d{8})$'#3.提供要校驗的手機號碼
#mobile = '13612345678'
mobile = '15812345678'
# 4.使用規則匹配字符串
match=re.match(pattern,mobile)
if match==None:print(mobile,"不是有效的中國移動手機號碼")
else:print(mobile, "是有效的中國移動手機號碼")------------------------------------import repattern = r'(黑客)|(抓包)|(監聽)|(Liushao)' # 模式字符串#about="我是一名程序員,我喜歡看黑客方面的圖書,最近研究Liushao老師出的一本書"about="我是一名程序員,我喜歡看計算機網絡方面的圖書,我喜歡開發網站,監聽羅老師"searchs=re.search(pattern,about) #進行模式匹配if searchs==None:#沒有一個匹配的情況下print(about,"安全!!!")
else: #任意規則符合的情況print(about,"出現了漏洞@@@")