400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎(chǔ)知識(shí)】常用內(nèi)建模塊-re

【Python基礎(chǔ)知識(shí)】常用內(nèi)建模塊-re

  • 發(fā)布: 優(yōu)就業(yè)it培訓(xùn)
  • 來源:
  • 2021-10-29 14:50:16
  • 閱讀()
  • 分享
  • 手機(jī)端入口

編程語言中的正則表達(dá)式用于描述搜索模式的特殊文本字符串。這對(duì)于從文本(如代碼、日志、文檔、電子表格等)中提取信息非常有用。使用正則表達(dá)式時(shí),首先要認(rèn)識(shí)到的是,所有內(nèi)容本質(zhì)上都是一個(gè)字符。ASCII或拉丁字母是鍵盤上的字母,Unicode用于匹配外來文本,它包括數(shù)字和標(biāo)點(diǎn)符號(hào)以及所有特殊字符,如$、#、@、!、%等。

例如,正則表達(dá)式可以告訴程序從字符串中搜索特定文本,然后相應(yīng)地打印出結(jié)果。正則表達(dá)式可以包括文字匹配、重復(fù)、分支、模式組成等。

在Python中,正則表達(dá)式通過re模塊導(dǎo)入。元字符是具有特殊含義的字符,用來匹配特定文本。常用的元字符如表所示。

re模塊中定義了一些函數(shù),分別對(duì)應(yīng)不同的匹配模式。

findall()函數(shù)用于返回包含所有匹配項(xiàng)的字符串列表:

  1. >>> import re   # 導(dǎo)入re模塊,以下示例都將省略這行代碼 
  2. >>> s = 'hello 12 hi 89. How 34' 
  3. >>> pattern = '\d+'   # 匹配數(shù)字 
  4. >>> result = re.findall(pattern, s) 
  5. >>> print(result) 
  6. ['12''89''34'

split()函數(shù)用于在存在匹配項(xiàng)的情況下拆分字符串,并返回發(fā)生拆分的字符串列表:

  1. >>> s = 'python:234, java 90'   # 將數(shù)字作為分隔符 
  2. >>> pattern = '\d+' 
  3. >>> result = re.split(pattern, s) 
  4. >>> print(result) 
  5. ['python:'', java '''

如果不存在匹配項(xiàng),那么split()函數(shù)返回一個(gè)包含空字符串的列表?梢詫axsplit參數(shù)傳遞給split()函數(shù),maxsplit代表最大拆分次數(shù):

  1. >>> s = 'python:234, java 90' 
  2. >>> pattern = '\d+' 
  3. >>> result = re.split(pattern, s, 1)   # 分割最大值是1,即拆成兩份 
  4. >>> print(result) 
  5. ['python:'', java 90'

sub()函數(shù)用于返回一個(gè)字符串,其中匹配到的匹配項(xiàng)被替換變量的內(nèi)容替換:

  1. >>> s = 'abc 12
  2. ... de 23 \n f45 6
  3. >>> pattern = '\s+'   # 匹配空白字符 
  4. >>> replace = ''   # 用空字符串替換匹配項(xiàng) 
  5. >>> new_string = re.sub(pattern, replace, s) 
  6. >>> print(new_string)  # 完成替換 
  7. abc12de23f456 

如果不存在匹配項(xiàng),那么sub()函數(shù)返回原始字符串。

subn()函數(shù)與sub()函數(shù)類似,只不過subn()函數(shù)返回一個(gè)包含2個(gè)項(xiàng)的元組,其中包含新字符串和進(jìn)行替換的次數(shù):

  1. >>> s = 'abc 12
  2. ... de 23 \n f45 6
  3. >>> pattern = '\s+' 
  4. >>> replace = '' 
  5. >>> new_string = re.subn(pattern, replace, s) 
  6. >>> print(new_string) 
  7. ('abc12de23f456'4

search()函數(shù)采用兩個(gè)參數(shù),分別是匹配模式和字符串。該函數(shù)查找正則表達(dá)式模式與字符串匹配的第一個(gè)位置。如果匹配成功,那么search()函數(shù)返回一個(gè)match對(duì)象;否則返回None:

  1. >>> s = 'Python is fun' 
  2. >>> match = re.search('\APython', s)   # 檢查'Python'是否在開頭 
  3. >>> print(match)   # 返回一個(gè)對(duì)象 
  4. <_sre.SRE_Match object; span=(06), match='Python'

上面的match變量包含著match對(duì)象,match對(duì)象的re屬性返回一個(gè)正則表達(dá)式對(duì)象,string屬性返回傳遞的字符串:

  1. >>> match.re 
  2. re.compile('\\APython'
  3. >>> match.string 
  4. 'Python is fun' 

 

文章“【Python基礎(chǔ)知識(shí)】常用內(nèi)建模塊-re”已幫助

更多內(nèi)容

>>本文地址:http://liujunjsxg.cn/zhuanye/2021/70621.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷互聯(lián)網(wǎng)營(yíng)銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁設(shè)計(jì)網(wǎng)頁設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時(shí)間TIME