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

【Python基礎知識】常用內建模塊-re

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

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

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

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

re模塊中定義了一些函數,分別對應不同的匹配模式。

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

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

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

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

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

  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()函數用于返回一個(gè)字符串,其中匹配到的匹配項被替換變量的內容替換:

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

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

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

  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()函數采用兩個(gè)參數,分別是匹配模式和字符串。該函數查找正則表達式模式與字符串匹配的第一個(gè)位置。如果匹配成功,那么search()函數返回一個(gè)match對象;否則返回None:

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

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

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

 

文章“【Python基礎知識】常用內建模塊-re”已幫助

更多內容

>>本文地址:http://www.lakeplacidphc.com/zhuanye/2021/70621.html

THE END  

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

1 您的年齡

2 您的學(xué)歷

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

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

快速通道fast track

近期開(kāi)班時(shí)間TIME