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

Python中re模塊常用方法總結(jié)分析

 更新時(shí)間:2021年09月13日 14:01:46   作者:季布,  
這篇文章主要為大家介紹了Python中re模塊常用方法,并對(duì)這些常用方法進(jìn)行總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助

re.findall()

在字符串中找到正則表達(dá)式所匹配的所有子串,并返回一個(gè)列表,如果沒(méi)有找到匹配的,則返回空列表。

語(yǔ)法格式:

re.findall(pattern, string, flags=0)

參數(shù):
pattern:匹配字符串的正則。
string :待匹配的字符串。

示例:

需求:查找字符串中的所有數(shù)字

result = re.findall(r'\d+','1python2hello3')
print(result)

結(jié)果
['1', '2', '3']

result = re.findall(r'p%','helloP%ython')
print(result)

結(jié)果
[]      #因?yàn)橐ヅ涞淖址甈% 和正則p%不匹配,所以返回空

result = re.findall(r'p%','helloP%ython',re.I)
print(result)

結(jié)果
[P%]

re.sub()

語(yǔ)法:

re.sub(pattern, repl, string, count=0, flags=0)

參數(shù):
pattern : 正則中的模式字符串。
repl : 替換的字符串,也可為一個(gè)函數(shù)。
string : 要被查找替換的原始字符串。
count : 模式匹配后替換的最大次數(shù),默認(rèn) 0 表示替換所有的匹配。

result = re.sub(r'python','world','hellopython')
print(result)

結(jié)果
helloworld

repl 參數(shù)是一個(gè)函數(shù)

#需求:將匹配到結(jié)果中小于4的替換成8,大于4的替換成9
import re
def modify(value):
    matched = value.group()
    if int(matched) <= 4:
        return '8'
    else:
        return '9'
str = 'ab12cd34ef567'
result = re.sub('\d', modify, str)
print(result )

結(jié)果
ab88cd88ef999

使用場(chǎng)景:可以對(duì)匹配成功要替換的部分做操作

re.compile

當(dāng)我們?cè)赑ython中使用正則表達(dá)式時(shí),re模塊內(nèi)部:

  • 1)編譯正則表達(dá)式,如果正則表達(dá)式的字符串本身不合法,會(huì)報(bào)錯(cuò);
  • 2)用編譯后的正則表達(dá)式去匹配字符串。

那么如果一個(gè)正則表達(dá)式要重復(fù)使用幾千次,出于效率的考慮,我們是不是應(yīng)該先把這個(gè)正則先預(yù)編譯好,接下來(lái)重復(fù)使用時(shí)就不再需要編譯這個(gè)步驟了,直接匹配,提高我們的效率

compile 函數(shù)用于編譯正則表達(dá)式,生成一個(gè)正則表達(dá)式( Pattern )對(duì)象,供 match() 和 search() 這兩個(gè)函數(shù)使用。

語(yǔ)法格式為:

re.compile(pattern[, flags])

參數(shù):
pattern : 一個(gè)字符串形式的正則表達(dá)式
flags : 可選,表示匹配模式,比如忽略大小寫,多行模式等,

str = 'ab12cd34ef567'
info = re.compile(r'([a-z]{2})(\d{2})')
result = info.match(str).group()
result1 = info.match(str).groups() 
print(result)
print(result1)

結(jié)果
ab12
('ab', '12')

re.match

re.match 嘗試從字符串的起始位置匹配一個(gè)模式,如果不是起始位置匹配成功的話,match()就返回none。

語(yǔ)法

re.match(pattern, string, flags=0)

參數(shù):
pattern :匹配的正則表達(dá)式
string:要匹配的字符串。
flags : 標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等

str = 'ab12cd34ef567'
info = re.compile(r'([a-z]{2})(\d{2})')
result = info.match(str).group()
result1 = info.match(str).groups() 
print(result)
print(result1)

結(jié)果
ab12
('ab', '12')

str1 = '0b12cd34ef567'
result1 = info.match(str1).group()
print(result1)

結(jié)果: 會(huì)報(bào)錯(cuò)
AttributeError: 'NoneType' object has no attribute 'group'

re.search

re.search 掃描整個(gè)字符串并返回第一個(gè)成功的匹配。

參數(shù):
pattern :匹配的正則表達(dá)式
string:要匹配的字符串。
flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等

str = 'ab12cd34ef567'
info = re.compile(r'([0-9]{2})')
result = info.search(str).group()
print(result)

結(jié)果
12

re.match與re.search的區(qū)別

re.match只匹配字符串的開(kāi)始,如果字符串開(kāi)始不符合正則表達(dá)式,則匹配失敗,函數(shù)返回None;

re.search匹配整個(gè)字符串,直到找到一個(gè)匹配。

re.split

split 方法按照能夠匹配的子串將字符串分割后返回列表

語(yǔ)法

re.split(pattern, string[, maxsplit=0, flags=0])

參數(shù):
pattern: 匹配的正則表達(dá)式
string:要匹配的字符串。
flags:標(biāo)志位,用于控制正則表達(dá)式的匹配方式,如:是否區(qū)分大小寫,多行匹配等

str = 'abc def g hi'
result = re.split('\W+',str)
print(result)

結(jié)果
['abc', 'def', 'g', 'hi']

以上就是Python中re模塊常用方法總結(jié)分析的詳細(xì)內(nèi)容,更多關(guān)于Python中re模塊常用方法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python基于高斯消元法計(jì)算線性方程組示例

    Python基于高斯消元法計(jì)算線性方程組示例

    這篇文章主要介紹了Python基于高斯消元法計(jì)算線性方程組,結(jié)合實(shí)例形式分析了Python高斯消元法針對(duì)方程組求解的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • python實(shí)現(xiàn)猜數(shù)字游戲

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

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • python對(duì)接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送

    python對(duì)接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送

    在本篇文章里小編給大家分享的是關(guān)于python對(duì)接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送功能,需要的朋友們可以參考下。
    2020-05-05
  • Django 返回json數(shù)據(jù)的實(shí)現(xiàn)示例

    Django 返回json數(shù)據(jù)的實(shí)現(xiàn)示例

    這篇文章主要介紹了Django 返回json數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python計(jì)算一個(gè)文件里字?jǐn)?shù)的方法

    Python計(jì)算一個(gè)文件里字?jǐn)?shù)的方法

    這篇文章主要介紹了Python計(jì)算一個(gè)文件里字?jǐn)?shù)的方法,涉及Python文件操作及內(nèi)容遍歷的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • python如何進(jìn)行矩陣運(yùn)算

    python如何進(jìn)行矩陣運(yùn)算

    在本篇文章里小編給大家分享的是關(guān)于python進(jìn)行矩陣運(yùn)算的方法及實(shí)例代碼,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python中如何導(dǎo)入類示例詳解

    Python中如何導(dǎo)入類示例詳解

    這篇文章主要給大家介紹了關(guān)于Python中如何導(dǎo)入類的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 關(guān)于Numpy之repeat、tile的用法總結(jié)

    關(guān)于Numpy之repeat、tile的用法總結(jié)

    這篇文章主要介紹了關(guān)于Numpy之repeat、tile的用法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python GUI編程學(xué)習(xí)筆記之tkinter中messagebox、filedialog控件用法詳解

    Python GUI編程學(xué)習(xí)筆記之tkinter中messagebox、filedialog控件用法詳解

    這篇文章主要介紹了Python GUI編程學(xué)習(xí)筆記之tkinter中messagebox、filedialog控件用法,結(jié)合實(shí)例形式總結(jié)分析了Python GUI編程tkinter中messagebox、filedialog控件基本功能、用法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • 如何利用python將一個(gè)py文件變成一個(gè)軟件詳解

    如何利用python將一個(gè)py文件變成一個(gè)軟件詳解

    在我們完成一個(gè)Python項(xiàng)目或一個(gè)程序時(shí),希望將Python的py文件打包成在Windows系統(tǒng)下直接可以運(yùn)行的exe程序,下面這篇文章主要給大家介紹了關(guān)于如何利用python將一個(gè)py文件變成一個(gè)軟件的相關(guān)資料,需要的朋友可以參考下
    2023-04-04

最新評(píng)論