最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python正則表達(dá)式語法及re模塊中的常用函數(shù)詳解

 更新時(shí)間:2025年04月24日 11:07:27   作者:是十一月末  
這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式語法及re模塊中常用函數(shù)的相關(guān)資料,正則表達(dá)式是一種強(qiáng)大的字符串處理工具,可以用于匹配、切分、查找和替換等操作,文章詳細(xì)講解了如何使用正則表達(dá)式進(jìn)行匹配,,需要的朋友可以參考下

概念、作用和步驟

概念: 本身也是一個(gè)字符串,其中的字符具有特殊含義,將來我們可以根據(jù)這個(gè)字符串【正則表達(dá)式】去處理其他的字符串,比如可以對其他字符串進(jìn)行匹配,切分,查找,替換等一系列操作。

作用:可以對其他字符串進(jìn)行匹配,切分,查找,替換等處理操作。

編寫的步驟:- 需要大量的文本信息——找規(guī)律——使用正則語法編寫出正則表達(dá)式

是一個(gè)獨(dú)立于任何一門語言的技術(shù),任何一門語言中都可以使用同一個(gè)正則表達(dá)式去操作

語法

需要先導(dǎo)入內(nèi)置函數(shù)re,import re

  • 字符串本身就是一個(gè)正則表達(dá)式
  • [] 表示可選項(xiàng)

代碼展示:

import re
s1 = '今天是個(gè)好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,郵箱是12345678@qq.com和12134.163.com。希望我的三個(gè)快遞能找到'
r1 = re.findall(r'\d+[16]',s1)
print(r1,type(r1))

運(yùn)行結(jié)果:

  • 英文字母范圍
    • [a-z] 表示查找 a-z
    • [A-Za-z]
    • [0-9]

注意[]需要用’ '括起才能使用,否則報(bào)錯(cuò)
[**A-Za-z]不能改變?nèi)鏪A-z]因?yàn)槭褂玫氖茿SCII碼,會(huì)出現(xiàn)非英文部分。

代碼展示:

s1 = '今天是個(gè)好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,郵箱是12345678@qq.com和12134.163.com。希望我的三個(gè)ABC快遞能找到'
r1 = re.findall(r'[f-z]',s1)
r2 = re.findall(r'[A-Za-z]',s1)
r3 = re.findall(r'[3-9]',s1)
print(r1)
print(r2)
print(r3)

運(yùn)行結(jié)果:

  • \d 數(shù)字
    • **\d?**表示出現(xiàn)了0次或者1次
    • \d+ 表示出現(xiàn)了1次或者n次
    • \d*表示出現(xiàn)了0次或者n次

    \d同時(shí)需’'括起使用

代碼展示:

s1 = '今天是個(gè)好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,郵箱是12345678@qq.com和12134.163.com。希望我的三個(gè)ABC快遞能找到'
r1 = re.findall(r'\d',s1)
r4 = re.findall(r'\d?',s1)
r2 = re.findall(r'\d+',s1)
r3 = re.findall(r'\d*',s1)
print(r1)
print(r4)
print(r2)
print(r3)

運(yùn)行結(jié)果:

  • {}出現(xiàn)次數(shù)
    • {m,n} 表示出現(xiàn)的次數(shù)范圍,m表示至少出現(xiàn)的次數(shù),n表述最多出現(xiàn)的次數(shù)
    • {m,} 表示出現(xiàn)的次數(shù),至少為m個(gè),上不封頂
    • {m} 表示出現(xiàn)了m次

代碼展示:

s1 = '今天是個(gè)好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,微信是微信2342345,qq是qq1234,郵箱是12345678@qq.com和12134.163.com。希望我的三個(gè)ABC快遞能找到'
r1 = re.findall(r'1\d{1,2}',s1)
r2 = re.findall(r'是\d{,2}',s1)
r4 = re.findall(r'1\d{3,}',s1)
r3 = re.findall(r'\d{2}',s1)
print(r1)
print(r2)
print(r4)
print(r3)

運(yùn)行結(jié)果:

  • \w 表示英文字母大寫或者小寫,或者下劃線,或者是中文漢字
  • \W 表示除了大小寫英文字母,數(shù)字,漢字,下劃線之外,都能匹配

如果我們沒有寫re.ASCII參數(shù),那么第一個(gè)\w+會(huì)將漢字也匹配上,因?yàn)閈w本身就可以匹配漢字的,但是當(dāng)我們加上了re.ASCII參數(shù),python正則表達(dá)式匹配的時(shí)候,\w只會(huì)匹配ASCII碼上有的字符。

代碼展示:

s1 = '今天是個(gè)好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,微信是微信2342345,qq是qq1234,郵箱是12345678@qq.com和12134.163.com。希望我的三個(gè)ABC快遞能找到'
r1 = re.findall(r'\W',s1)
r2 = re.findall(r'qq\w+',s1)
r3 = re.findall(r'qq\w+',s1,re.ASCII)
print(r1)
print(r2)
print(r3)

運(yùn)行結(jié)果:

  • 匹配以某個(gè)字符串開頭

    • ^ 表示以某個(gè)字符串開頭

.com在re里可寫成\.com

代碼展示:

s1 = '今天是個(gè)好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,微信是wx2342345,qq是qq1234,郵箱是12345678@qq.com和12134.163.com。希望我的三個(gè)ABC快遞能找到'
r1 = re.findall(r'qq\w+',s1,re.ASCII)
r2 = re.findall(r'12\w+\@\w+\.com',s1,re.ASCII)
s2 = '123ajdhsa2134'
s3 = 'ajdhsa$2134$'
r3 = re.findall(r'^aj',s2,re.ASCII)
r4 = re.findall(r'^aj',s3,re.ASCII)
print(r1)
print(r2)
print(r3)
print(r4)

運(yùn)行結(jié)果:

  • () 分組

可以
多個(gè)()進(jìn)行分組,,結(jié)果按()順序
代碼展示:

s1 = '身份證號:342300200105198866'
r1 = re.findall(r'(342\d{3}(\d{4})(\d{4}))',s1,re.ASCII)
print(r1)
for i in r1:
    print(i)

運(yùn)行結(jié)果:

  • 或 | 多個(gè)字符之間的或使用小括號

代碼展示:

s1 = '身份證號1:342300200105198866,另一個(gè)身份證號2:342200200806116688'
r1 = re.findall(r'(342\d{3}(\d{4})(\d{4}))',s1)
r2 = re.findall(r'(342(300|200)(\d{4})(\d{2})(\d{2}))',s1)
print(r1)
print(r2)

運(yùn)行結(jié)果:

  • . 表示任意字符

使用\轉(zhuǎn)義字符,將.變成普通的點(diǎn)字符進(jìn)行匹配

代碼展示:

s1 = '今天天氣正好,適合買xiaomipro,郵箱是12345678@qq.com'
r1 = re.findall(r'xiao.{5}',s1)
r2 = re.findall(r'天氣.{5}',s1)
r3 = re.findall(r'12\d+@+\w+\.com',s1)

print(r1)
print(r2)
print(r3)

運(yùn)行結(jié)果:

re模塊中的常用函數(shù)

  • re.findall 在大字符串中查找符合正則表達(dá)式特點(diǎn)的式子
  • re.match() 匹配整個(gè)字符串是否符合某個(gè)正則表達(dá)式特點(diǎn)
  • re.search() 從左向右匹配正則表達(dá)式,只會(huì)匹配一次符合條件, 得到的是一個(gè)對象

match和search返回的是對象,需要group查看

代碼展示:

s1 = '今天天氣正好,適合買xiaomipro,郵箱是12345678@qq.com'
s2 = 'xiaom'
r1 = re.findall(r'xiao.{5}',s1)
r2 = re.match(r'xiao',s2)
r3 = re.match(r'xiao',s1)
r4 = re.search(r'xiao',s2)
print(r1)
print(r2)
print(r2.group())
print(r3)
print(r4)
print(r4.group())

運(yùn)行結(jié)果:

  • re.split()切割

代碼展示:

s1 = 'xiaomi.pro@12345'
r1 = re.split(r'[.,@]',s1)
print(r1)

運(yùn)行結(jié)果:

  • re.finditer() 在大字符串中查找符合正則表達(dá)式特點(diǎn)的式子,得到的是一個(gè)迭代器
    代碼展示:
s1 = 'xiaomi.pro@12345'
r1 = re.finditer(r'[(\d+)]',s1,re.ASCII)
for i in r1:
    print(i.group())
print(r1)

運(yùn)行結(jié)果:

  • fullmatch() 將字符串整體與正則表達(dá)式進(jìn)行匹配

代碼展示:

text = '安徽省-合肥市'
res1 = re.fullmatch(f'(\w+)-(\w+)', text)
print(f"省份:{res1.group(1)}")
print(f"市:{res1.group(2)}")

運(yùn)行結(jié)果:

總結(jié) 

到此這篇關(guān)于Python正則表達(dá)式語法及re模塊中的常用函數(shù)的文章就介紹到這了,更多相關(guān)Python正則及re模塊函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入理解python中的淺拷貝和深拷貝

    深入理解python中的淺拷貝和深拷貝

    下面小編就為大家?guī)硪黄钊肜斫鈖ython中的淺拷貝和深拷貝。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • 利用PyCharm Profile分析異步爬蟲效率詳解

    利用PyCharm Profile分析異步爬蟲效率詳解

    這篇文章主要給大家介紹了關(guān)于如何利用PyCharm Profile分析異步爬蟲效率的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用PyCharm具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • PyCharm提示No Python Interpreter的正確解決辦法

    PyCharm提示No Python Interpreter的正確解決辦法

    剛學(xué)Python時(shí),拿到一個(gè)Python項(xiàng)目,想用pycharm打開運(yùn)行卻報(bào)錯(cuò)了,這篇文章主要給大家介紹了關(guān)于PyCharm提示No Python Interpreter的正確解決辦法,需要的朋友可以參考下
    2023-10-10
  • python下載庫的步驟方法

    python下載庫的步驟方法

    在本篇文章里小編給大家分享的是關(guān)于python怎么下載庫的詳細(xì)實(shí)例內(nèi)容,有需要的朋友們學(xué)習(xí)下。
    2019-10-10
  • Python 判斷圖像是否讀取成功的方法

    Python 判斷圖像是否讀取成功的方法

    今天小編就為大家分享一篇Python 判斷圖像是否讀取成功的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python趣味挑戰(zhàn)之pygame實(shí)現(xiàn)無敵好看的百葉窗動(dòng)態(tài)效果

    Python趣味挑戰(zhàn)之pygame實(shí)現(xiàn)無敵好看的百葉窗動(dòng)態(tài)效果

    最近寫了很多期關(guān)于pygame的案例和知識(shí)點(diǎn),自己也收獲了很多知識(shí),也在這個(gè)過程中成長了不少, 這次還是圍繞surface對象進(jìn)行詳細(xì)介紹,并形成完整的案例過程,文中有非常詳細(xì)實(shí)現(xiàn)百葉窗動(dòng)態(tài)效果的代碼示例,需要的朋友可以參考下
    2021-05-05
  • Python自動(dòng)刪除過期文件的實(shí)現(xiàn)方法

    Python自動(dòng)刪除過期文件的實(shí)現(xiàn)方法

    你是否感到你的電腦越用越卡,啟動(dòng)程序慢,打開文件也慢?罪魁禍?zhǔn)卓赡芫褪悄切┎恢挥X中文件堆積如山的文件夾!下載的電影、瀏覽網(wǎng)頁產(chǎn)生的臨時(shí)文件、舊的程序日志、一次性使用的文檔,本文我們將手把手教你如何打造一套Python自動(dòng)刪除過期文件的智能系統(tǒng)
    2025-11-11
  • 使用python繪制溫度變化雷達(dá)圖

    使用python繪制溫度變化雷達(dá)圖

    這篇文章主要為大家介紹了使用python繪制溫度變化雷達(dá)圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn)

    Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn)

    這篇文章主要介紹了Numpy 多維數(shù)據(jù)數(shù)組的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python還能這么玩之只用30行代碼從excel提取個(gè)人值班表

    Python還能這么玩之只用30行代碼從excel提取個(gè)人值班表

    公司實(shí)行項(xiàng)目值班制度,拿到值班表,看到全部的值班信息,要去查找自己的值班信息,是一件頭痛的事情.作為程序員,當(dāng)然要簡化,將自己的信息提煉出來,需要的朋友可以參考下
    2021-06-06

最新評論

罗田县| 阜新| 迭部县| 云南省| 双辽市| 江口县| 宁武县| 芜湖县| 临朐县| 桓台县| 微山县| 乳山市| 天长市| 鹤岗市| 溧水县| 靖江市| 南通市| 曲松县| 江川县| 叙永县| 东明县| 本溪市| 东丽区| 晋中市| 白河县| 电白县| 建湖县| 广德县| 西盟| 潞西市| 嘉禾县| 聊城市| 长宁区| 长春市| 麟游县| 霞浦县| 新巴尔虎左旗| 吴堡县| 新余市| 嘉兴市| 张家川|