1、正則表達式的概述
????????正則表達式描述了一種字符串匹配的模式,可以用來檢查一個串的有無某子串,或者做子串匹配替換,取出子串等操作。也可以說正則表達式就是字符串的匹配規(guī)則,也可以理解為是一種模糊匹配,匹配滿足正則條件的字符串。
2、正則表達式的功能
????????1、數(shù)據(jù)驗證(eg:表單驗證)
????????2、數(shù)據(jù)檢索(eg:網(wǎng)絡(luò)爬蟲數(shù)據(jù)抓取)
????????3、數(shù)據(jù)隱藏(手機號隱藏)
????????4、數(shù)據(jù)過濾(eg: 敏感詞匯過濾)
3、Python 中的re模塊三步走
# 第一步 導(dǎo)入re模塊
import re
#第二步使用方法進行匹配操作 這里用的 match()方法
result = re.match(pattern正則表達式,string要匹配的字符串,flags = 0)
"""
match() 方法: 專門用于匹配以某些字符或字符串開頭的內(nèi)容(只能匹配開頭)
findall() 方法: 可以匹配任意位置
serach() 方法 : 函數(shù)用于掃描整個字符串,并返回第一個成功的匹配
"""
#如果匹配成功,使用 group方法來提取數(shù)據(jù)
result.group() #沒有返回內(nèi)容,則返回 None
eg:匹配字符 7
import re
str = "1254697318"
result = re.findall("8",str)
print(result)
4、正則編寫三部曲
1、查什么
? ? ?代碼 | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 功能 |
? ? ? . (英文的點號) |
匹配任意一個字符( 除 \n 之外) |
? ? ? [ ] (字符簇) |
匹配 [ ] 中的任意某個字符? |
? ? ? [^ ]文章來源:http://www.zghlxwxcb.cn/news/detail-553621.html ( ^ 托字節(jié))文章來源地址http://www.zghlxwxcb.cn/news/detail-553621.html |
匹配除了指定字符以外的所有字符,即取反的意思 |
? ? ? \d | 匹配數(shù)字? 0-9 |
匹配非數(shù)字 | |
? ? ?\s | 匹配空白(例如 空格 、table鍵等) |
? ? ?\S | 匹配非空白 |
? ? ?\w | 匹配非特殊字符(eg: a-z、A-Z、0-9、_、漢字) |
? ? ?\W | 匹配特殊字符 |
2、查多少
? ? ? ? ? ? 代碼 | 功能 | ||
* | 匹配前?個字符出現(xiàn)0次或者?限次,即可有可?? ? ? (0 到 多) | ||
+ | 匹配
|
||
? | 匹配前?個字符出現(xiàn)1次或者0次,即要么有1次,要么沒有? (0 或 1) | ||
{m} | 匹配前?個字符出現(xiàn)m次?? | ||
{m,} | 匹配一個字符至少出現(xiàn) m 次? ? ? ? ? ? ? ?(m 到 無限次) | ||
{m,n} | 匹配前?個字符出現(xiàn)從m到n次? ? ? ? ? ? ? ?(m 到 n 次) |
3、從哪查
代碼 | 功能 |
^ | 匹配以某個字符串開頭 |
$ | 匹配以某個字符串結(jié)尾 |
4、小栗子 — 匹配手機號
import re
mobile = "12345678964"
result = re.match("^1[3456789]\d{9}$",mobile)
if result :
print("手機號合理")
else :
print("手機號不合法,請重新輸入?。?!")
到了這里,關(guān)于Python正則表達式之學(xué)習正則表達式三步曲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!