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

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

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

概念、作用和步驟

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

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

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

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

語法

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

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

代碼展示:

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

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

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

注意[]需要用’ '括起才能使用,否則報錯
[**A-Za-z]不能改變?nèi)鏪A-z]因為使用的是ASCII碼,會出現(xiàn)非英文部分。

代碼展示:

s1 = '今天是個好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,郵箱是12345678@qq.com和12134.163.com。希望我的三個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同時需’'括起使用

代碼展示:

s1 = '今天是個好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,郵箱是12345678@qq.com和12134.163.com。希望我的三個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個,上不封頂
    • {m} 表示出現(xiàn)了m次

代碼展示:

s1 = '今天是個好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,微信是微信2342345,qq是qq1234,郵箱是12345678@qq.com和12134.163.com。希望我的三個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ù),那么第一個\w+會將漢字也匹配上,因為\w本身就可以匹配漢字的,但是當(dāng)我們加上了re.ASCII參數(shù),python正則表達(dá)式匹配的時候,\w只會匹配ASCII碼上有的字符。

代碼展示:

s1 = '今天是個好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,微信是微信2342345,qq是qq1234,郵箱是12345678@qq.com和12134.163.com。希望我的三個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é)果:

  • 匹配以某個字符串開頭

    • ^ 表示以某個字符串開頭

.com在re里可寫成\.com

代碼展示:

s1 = '今天是個好天氣,我的快遞1-67,12-21343,ert_134找不到了,手機(jī)號碼是12345685769,微信是wx2342345,qq是qq1234,郵箱是12345678@qq.com和12134.163.com。希望我的三個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é)果:

  • () 分組

可以
多個()進(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é)果:

  • 或 | 多個字符之間的或使用小括號

代碼展示:

s1 = '身份證號1:342300200105198866,另一個身份證號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)義字符,將.變成普通的點字符進(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á)式特點的式子
  • re.match() 匹配整個字符串是否符合某個正則表達(dá)式特點
  • re.search() 從左向右匹配正則表達(dá)式,只會匹配一次符合條件, 得到的是一個對象

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á)式特點的式子,得到的是一個迭代器
    代碼展示:
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中的淺拷貝和深拷貝。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • 利用PyCharm Profile分析異步爬蟲效率詳解

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

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

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

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

    python下載庫的步驟方法

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

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

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

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

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

    Python自動刪除過期文件的實現(xiàn)方法

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

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

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

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

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

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

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

最新評論

玛纳斯县| 长阳| 三都| 金川县| 丹巴县| 邻水| 霍山县| 吴堡县| 太康县| 松阳县| 辉南县| 丹巴县| 湾仔区| 兰溪市| 上高县| 德钦县| 布拖县| 商南县| 米林县| 岳普湖县| 涞水县| 台南市| 都江堰市| 兴文县| 德清县| 固始县| 辽宁省| 岚皋县| 商城县| 翁牛特旗| 玉田县| 离岛区| 齐河县| 芜湖市| 密云县| 绥阳县| 兴隆县| 大化| 大余县| 桑日县| 永嘉县|