欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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á)式】去處理其他的字符串,比如可以對(duì)其他字符串進(jìn)行匹配,切分,查找,替換等一系列操作。

作用:可以對(duì)其他字符串進(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ī)號(hào)碼是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ī)號(hào)碼是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ī)號(hào)碼是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ī)號(hào)碼是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ī)號(hào)碼是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ī)號(hào)碼是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 = '身份證號(hào):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è)字符之間的或使用小括號(hào)

代碼展示:

s1 = '身份證號(hào)1:342300200105198866,另一個(gè)身份證號(hào)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è)對(duì)象

match和search返回的是對(duì)象,需要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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python串口如何讀取byte類型數(shù)據(jù)并訪問

    python串口如何讀取byte類型數(shù)據(jù)并訪問

    這篇文章主要介紹了python串口如何讀取byte類型數(shù)據(jù)并訪問方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python 編碼中為什么要寫類型注解?

    python 編碼中為什么要寫類型注解?

    這篇文章主要介紹了python 編碼中為什么要寫類型注解,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • python 接口實(shí)現(xiàn) 供第三方調(diào)用的例子

    python 接口實(shí)現(xiàn) 供第三方調(diào)用的例子

    今天小編就為大家分享一篇python 接口實(shí)現(xiàn) 供第三方調(diào)用的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python多線程爬取豆瓣影評(píng)API接口

    Python多線程爬取豆瓣影評(píng)API接口

    這篇文章主要介紹了Python多線程爬取豆瓣影評(píng)API接口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Pytorch之view及view_as使用詳解

    Pytorch之view及view_as使用詳解

    今天小編就為大家分享一篇Pytorch之view及view_as使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python裝飾器三種裝飾模式的簡(jiǎn)單分析

    python裝飾器三種裝飾模式的簡(jiǎn)單分析

    這篇文章主要介紹了python裝飾器的三種裝飾模式,幫助大家更好的理解和學(xué)習(xí)python 裝飾器,感興趣的朋友可以了解下
    2020-09-09
  • 關(guān)于Python內(nèi)存分配時(shí)的小秘密分享

    關(guān)于Python內(nèi)存分配時(shí)的小秘密分享

    這篇文章主要給大家分享介紹了關(guān)于Python內(nèi)存分配時(shí)的小秘密,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Django之 ArrayAgg與Admin技巧學(xué)習(xí)

    Django之 ArrayAgg與Admin技巧學(xué)習(xí)

    這篇文章主要為大家介紹了Django之ArrayAgg與Admin的技巧學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Python實(shí)現(xiàn)猜數(shù)字小游戲

    Python實(shí)現(xiàn)猜數(shù)字小游戲

    這篇文章介紹了Python實(shí)現(xiàn)猜數(shù)字小游戲,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以收藏下,方便下次瀏覽觀看
    2021-12-12
  • 解決Vscode中jupyter出現(xiàn)kernel dead問題

    解決Vscode中jupyter出現(xiàn)kernel dead問題

    遇到VSCode中Jupyter Kernel Dead時(shí),可通過Anaconda Prompt安裝ipykernel解決,首先使用jupyter kernelspec list命令查看內(nèi)核,若發(fā)現(xiàn)缺少ipykernel,激活相應(yīng)虛擬環(huán)境,使用conda install ipykernel命令安裝,操作后,VSCode中Jupyter應(yīng)能正常運(yùn)行
    2024-09-09

最新評(píng)論