頻道欄目
首頁 > 程序開發 > Web開發 > Python > 正文
Python正則表達式學習之match和search的實例
2018-07-27 14:46:06         來源:jeekmary的博客  
收藏   我要投稿

怎么使用,怎么返回什么

import re

if __name__ == '__main__':
 bt = 'bat|bet|bit'
 m = re.match(bt, 'bet')
 if m is not None:
  result = m.group()
  print(result)

 m = re.match(bt, 'batbet')
 if m is not None:
  result = m.group()
  print(result)

 m = re.match(bt, 'ggbet')
 if m is not None:
  result = m.group()
  print(result)
# 控制臺打印出來的結果為:
bet
bat

從上面的信息來看,python的 re 模塊中的 match方法這種用法只能匹配出字符串開始是否包含指定的部分,而且只讀取返回的結果只有一條數據,不知道大家理解了沒有,沒有理解可以將上面的代碼直接復制運行,當然這句話也不完全對,上面代碼如果換成這樣的話就說的不對了

 bt = '(bat).(bet).(bit)'
 m = re.match(bt, 'batmbetubit')
 if m is not None:
  result = m.group(3)
  print(result)

接下來一起看下 search

 bt = 'bit'
 m = re.search(bt, 'hfgkfkjbit')
 if m is not None:
  result = m.group()
  print(result)

re中的search這個方法的就可以從一整句中查詢是否包含需要的部分,而不僅僅的是查找開頭有沒有

 a = "123abc456"
 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(0))  # 123abc456,返回整體
 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(1) ) # 123
 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(2)) # abc
 print(re.search("([0-9]*)([a-z]*)([0-9]*)", a).group(3))  # 456
 print("-"*50)
 m = "(bet)...(bat)"
 result = re.search(m, "betljhbat")
 print(result.group(0))  # 返回整體
 print(result.group(1))  # 返回bet
 print(result.group(2))  # 返回bat

總的來說 match和search的功能絕大部分是相同的,不同的部分在于search是在整體搜索,而match是從開始搜索,其他部分基本相同

上面的例子要注意理解group這個,group是分組的意思,正則里面的小括號表示獲取當前的值并返回成元組通過group來獲取,一般第一個元素是整體元素也就是整個字符串

點擊復制鏈接 與好友分享!回本站首頁
上一篇:python庫下使用pandas的實例教程
下一篇:Python格式化字符串的操作實例講解
相關文章
圖文推薦
文章
推薦
點擊排行

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

重庆快乐十分开奖记录