亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python中的re模塊之正則表達式模塊常用方法

 更新時間:2023年08月04日 16:26:15   作者:常家壯  
re模塊是Python中使用正則表達式的最基礎(chǔ)的模塊,re模塊的這些功能覆蓋了正則表達式的常見用法,使用re模塊可以簡化字符串的模式匹配、信息提取、過濾替換、切分等操作,本文給大家介紹正則表達式模塊常用方法,感興趣的朋友跟隨小編一起看看吧

re模塊介紹:

Python的re模塊提供了正則表達式的功能,可以用來進行高級的字符串匹配和處理。re模塊的主要功能包括:

  • 編譯正則表達式 - 使用re.compile()可以編譯正則表達式字符串,生成正則表達式對象。
  • 匹配字符串 - 使用正則表達式對象的match()、search()、findall()等方法可以在字符串進行匹配。
  • 替換字符串 - 使用sub()和subn()方法可以使用正則表達式進行字符串替換。
  • 分割字符串 - 使用split()方法可以按照正則表達式的匹配結(jié)果分割字符串。
  • 獲取匹配信息 - match對象包含了各種匹配信息,如匹配字符串、位置等。
  • 標志 - 可以使用標志來修改正則表達式的匹配方式,如忽略大小寫,多行匹配等。
  • 模塊級函數(shù) - re模塊還提供了模塊級的正則匹配函數(shù),如escape()可以對字符串轉(zhuǎn)義。

re模塊的這些功能覆蓋了正則表達式的常見用法。使用re模塊可以簡化字符串的模式匹配、信息提取、過濾替換、切分等操作

需要注意的一點是,re模塊主要針對ASCII字符,對Unicode的支持不太友好。此時可以考慮第三方模塊如regex

總之,re模塊是Python中使用正則表達式的最基礎(chǔ)的模塊,非常值得學(xué)習(xí)和掌握

Python re模塊詳解

re模塊提供正則表達式模式匹配操作,主要有以下函數(shù):

match()

匹配字符串開頭位置,返回match對象或None:

import re
m = re.match('foo','foo') 
print(m.group()) # 'foo'
m = re.match('foo','bar')
print(m) # None

search()

搜索字符串任意位置,返回match對象或None:

m = re.search('foo','hello food')
print(m.group()) # 'foo'

findall()

搜索字符串,返回所有匹配的列表:

m = re.findall('\d','123abc456')
print(m) # ['1', '2', '3', '4', '5', '6']

sub()

使用正則表達式進行字符串替換:

text = re.sub('\d', '0', '123abc456')
print(text) # '000abc000' 

split()

使用正則表達式進行字符串分割:

m = re.split('\d+', '123abc456') 
print(m) # ['abc', '']

compile()

編譯正則表達式,返回pattern對象:

pat = re.compile('\d') 
m = pat.match('123')

finditer()

在Python的re模塊中,re.finditer()是非常有用的一個正則表達式匹配函數(shù)。

re.finditer()的作用是在字符串中找到所有的匹配,并返回一個迭代器。相比re.findall()re.finditer()有以下區(qū)別:

  • re.findall():返回一個匹配字符串的列表
  • re.finditer():返回一個匹配對象迭代器

示例:

import re
s = 'hello 123 456 world'
matches = re.findall('\d+', s)
print(matches) # ['123', '456']
iterator = re.finditer('\d+', s)
print(iterator) # <callable_iterator object at 0x10f5f3b50>
for match in iterator:
    print(match) 
# <re.Match object; span=(6, 9), match='123'>
# <re.Match object; span=(10, 13), match='456'>

re.finditer()的返回對象是一個迭代器,每次迭代返回一個Match對象,包含匹配的字符串和位置。

主要優(yōu)點是:

  • 不需要先存儲所有匹配,更save內(nèi)存
  • 可以逐個訪問每個匹配
  • 提供了匹配的位置信息

所以在需要定位每個匹配的位置時,re.finditer()非常有用。

fullmatch()

匹配整個字符串,返回match對象或None:

import re
m = re.fullmatch('foo','foo')
print(m.group()) # 'foo' 
m = re.fullmatch('foo','foo bar')  
print(m) # None

escape()

將特殊字符轉(zhuǎn)義,可以將字符串轉(zhuǎn)化為正則表達式的字符串形式:

escaped = re.escape('http://example.com')  
print(escaped) # 'http:\/\/example\.com'

purge()

清除緩存的正則表達式,可以避免重復(fù)編譯正則表達式:

pat = re.compile(r'\d+')
re.purge() # 清除緩存

match.expand()

使用匹配到的組內(nèi)容,替換字符串模板:

m = re.match(r'(?P<name>\w+) (\w+)', 'John Doe')
print(m.expand('Hello \g<name>')) # 'Hello John'

(?P\w+)和 group(“name”) 搭配使用

import re
pattern = r'(?P<first_name>\w+) (?P<last_name>\w+)'
string = 'John Doe'
# 匹配字符串
m = re.match(pattern, string)
# 使用命名組獲取匹配
first_name = m.group('first_name') 
last_name = m.group('last_name')
print(first_name) # John
print(last_name) # Doe
# 替換字符串
new_string = re.sub(pattern, r'\g<last_name>, \g<first_name>', string)
print(new_string) # Doe, John

在這個例子中,正則表達式模式使用了兩個命名捕獲組first_name和last_name。

然后在獲取匹配后,可以直接通過命名引用匹配的內(nèi)容。

在替換字符串時,也可以利用命名組引用,使代碼更簡潔清晰。

所以命名捕獲組可以讓正則匹配和處理更高效方便。

以上是re模塊的常用函數(shù)

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

相關(guān)文章

  • Tensorflow2.1 完成權(quán)重或模型的保存和加載

    Tensorflow2.1 完成權(quán)重或模型的保存和加載

    這篇文章主要為大家介紹了Tensorflow2.1 完成權(quán)重或模型的保存和加載,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 如何利用python多線程爬取天氣網(wǎng)站圖片并保存

    如何利用python多線程爬取天氣網(wǎng)站圖片并保存

    最近做個天 氣方面的APP需要用到一些天氣數(shù)據(jù),所以下面這篇文章主要給大家介紹了關(guān)于如何利用python多線程爬取天氣網(wǎng)站圖片并保存的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • plotly分割顯示mnist的方法詳解

    plotly分割顯示mnist的方法詳解

    這篇文章主要為大家詳細介紹了plotly分割顯示mnist的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Python常用的模塊和簡單用法

    Python常用的模塊和簡單用法

    這篇文章主要給大家介紹Python#常用的模塊和簡單用法,以random 隨機模塊展開話題,感興趣的小伙伴可以參考一下
    2021-10-10
  • 深入了解Python在HDA中的應(yīng)用

    深入了解Python在HDA中的應(yīng)用

    這篇文章主要介紹了深入了解Python在HDA中的應(yīng)用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Python使用protobuf序列化和反序列化的實現(xiàn)

    Python使用protobuf序列化和反序列化的實現(xiàn)

    protobuf是一種二進制的序列化格式,相對于json來說體積更小,傳輸更快,本文主要介紹了Python使用protobuf序列化和反序列化的實現(xiàn),感興趣的可以了解一下
    2021-05-05
  • python繪制已知點的坐標的直線實例

    python繪制已知點的坐標的直線實例

    今天小編就為大家分享一篇python繪制已知點的坐標的直線實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 基于Python實現(xiàn)西西成語接龍小助手

    基于Python實現(xiàn)西西成語接龍小助手

    成語接龍是中華民族傳統(tǒng)的文字游戲。本文將用Python制作一個簡單的成語接龍小程序,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-08-08
  • 關(guān)于安裝halcon包pycharm提示不全的問題

    關(guān)于安裝halcon包pycharm提示不全的問題

    很多小伙伴給小編反映在pycham上面安裝halcon對應(yīng)的安裝包之后,導(dǎo)入出現(xiàn)問題,發(fā)現(xiàn)輸入ha.read 沒有自動提示 ,只有幾個變量和方法,怎么解決這個問題呢,下面小編給大家?guī)砹税惭bhalcon包pycharm提示不全的問題,一起看看吧
    2021-06-06
  • python 輸入字符串生成所有有效的IP地址(LeetCode 93號題)

    python 輸入字符串生成所有有效的IP地址(LeetCode 93號題)

    這篇文章主要介紹了python 生成所有有效的IP地址的方法,幫助大家解答題目,學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10

最新評論