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

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

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

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

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

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

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

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

  1. >>> import re   # 導入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ù)用于在存在匹配項的情況下拆分字符串,并返回發(fā)生拆分的字符串列表:

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

如果不存在匹配項,那么split()函數(shù)返回一個包含空字符串的列表?梢詫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ù)用于返回一個字符串,其中匹配到的匹配項被替換變量的內容替換:

  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()函數(shù)返回原始字符串。

subn()函數(shù)與sub()函數(shù)類似,只不過subn()函數(shù)返回一個包含2個項的元組,其中包含新字符串和進行替換的次數(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ù)采用兩個參數(shù),分別是匹配模式和字符串。該函數(shù)查找正則表達式模式與字符串匹配的第一個位置。如果匹配成功,那么search()函數(shù)返回一個match對象;否則返回None:

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

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

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

 

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

更多內容

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

THE END  

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

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

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

快速通道fast track

近期開班時間TIME