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

Python中re模塊常用方法總結分析

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

re.findall()

在字符串中找到正則表達式所匹配的所有子串,并返回一個列表,如果沒有找到匹配的,則返回空列表。

語法格式:

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

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

示例:

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

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

結果
['1', '2', '3']

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

結果
[]      #因為要匹配的字符串P% 和正則p%不匹配,所以返回空

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

結果
[P%]

re.sub()

語法:

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

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

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

結果
helloworld

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

#需求:將匹配到結果中小于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 )

結果
ab88cd88ef999

使用場景:可以對匹配成功要替換的部分做操作

re.compile

當我們在Python中使用正則表達式時,re模塊內部:

  • 1)編譯正則表達式,如果正則表達式的字符串本身不合法,會報錯;
  • 2)用編譯后的正則表達式去匹配字符串。

那么如果一個正則表達式要重復使用幾千次,出于效率的考慮,我們是不是應該先把這個正則先預編譯好,接下來重復使用時就不再需要編譯這個步驟了,直接匹配,提高我們的效率

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

語法格式為:

re.compile(pattern[, flags])

參數(shù):
pattern : 一個字符串形式的正則表達式
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)

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

re.match

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

語法

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

參數(shù):
pattern :匹配的正則表達式
string:要匹配的字符串。
flags : 標志位,用于控制正則表達式的匹配方式,如:是否區(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)

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

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

結果: 會報錯
AttributeError: 'NoneType' object has no attribute 'group'

re.search

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

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

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

結果
12

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

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

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

re.split

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

語法

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

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

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

結果
['abc', 'def', 'g', 'hi']

以上就是Python中re模塊常用方法總結分析的詳細內容,更多關于Python中re模塊常用方法的資料請關注腳本之家其它相關文章!

相關文章

  • Django配置跨域并開發(fā)測試接口

    Django配置跨域并開發(fā)測試接口

    這篇文章主要介紹了Django配置跨域并開發(fā)測試接口,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python輸出后面多一個None問題

    python輸出后面多一個None問題

    在Python中,函數(shù)如果沒有顯式指定返回值,會默認返回`None`,例如,計算一個數(shù)的平方根并輸出,如果沒有處理`None`,會輸出結果后跟`None`
    2024-11-11
  • Python實現(xiàn)FTP弱口令掃描器的方法示例

    Python實現(xiàn)FTP弱口令掃描器的方法示例

    這篇文章主要介紹了Python實現(xiàn)FTP弱口令掃描器的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 實例講解Python的函數(shù)閉包使用中應注意的問題

    實例講解Python的函數(shù)閉包使用中應注意的問題

    這里我們來以實例講解Python的函數(shù)閉包使用中應注意的問題,主要針對閉包后新生成的變量來不及初始化而導致找不到變量的錯誤出現(xiàn),需要的朋友可以參考下
    2016-06-06
  • python遞歸法實現(xiàn)簡易連連看小游戲

    python遞歸法實現(xiàn)簡易連連看小游戲

    這篇文章主要為大家詳細介紹了python遞歸法實現(xiàn)簡易連連看小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python中文豎排顯示的方法

    Python中文豎排顯示的方法

    這篇文章主要介紹了Python中文豎排顯示的方法,可實現(xiàn)Python將中文豎排輸出顯示的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Python監(jiān)測屏幕界面內容變化并發(fā)送通知方法詳解

    Python監(jiān)測屏幕界面內容變化并發(fā)送通知方法詳解

    這篇文章主要為大家介紹了Python監(jiān)測屏幕界面內容變化并發(fā)送通知,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • python一秒搭建FTP服務器

    python一秒搭建FTP服務器

    今天給大家分享一篇教程關于python一秒搭建FTP服務器的教程,在搭建過程中需要用到pyftpdlib模塊,對python FTP服務器搭建過程感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • Python解析網頁源代碼中的115網盤鏈接實例

    Python解析網頁源代碼中的115網盤鏈接實例

    這篇文章主要介紹了Python解析網頁源代碼中的115網盤鏈接實例,主要采用了正則表達式re模塊來實現(xiàn)該功能,需要的朋友可以參考下
    2014-09-09
  • Python多線程同步---文件讀寫控制方法

    Python多線程同步---文件讀寫控制方法

    今天小編就為大家分享一篇Python多線程同步---文件讀寫控制方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02

最新評論

水富县| 贵定县| 大丰市| 祁门县| 金昌市| 泗水县| 桦南县| 台湾省| 浮梁县| 观塘区| 禹城市| 绵竹市| 黎城县| 博兴县| 清远市| 丹寨县| 邵东县| 庐江县| 汝阳县| 桦南县| 东城区| 神木县| 武功县| 新源县| 满城县| 米脂县| 黄石市| 大兴区| 疏附县| 大荔县| 丰顺县| 四子王旗| 泰州市| 盘山县| 会东县| 红原县| 益阳市| 广平县| 大姚县| 牟定县| 邵阳县|