正則表達式Re庫的使用-Python

MOOC課程學習筆記
課程鏈接:https://www.bilibili.com/video/BV1ME411E7jE?p=1

Re庫主要功能函數

函數 功能 返回值
re.search() 在一個字符串中搜索匹配正則表達式的第一個位置 match對象
re.match() 從一個字符串的開始位置起匹配正則表達式 match對象
re.findall() 搜索字符串,返回全部能匹配的子串 list列表
re.split() 將一個字符串按照正則表達式匹配結果進行分割 list列表
re.finditer() 搜索字符串,返回匹配結果 迭代類型,迭代元素是match對象
re.sub() 在一個字符串中替換所有匹配正則表達式的子串 替換後的string字符串
re.compile() 將正則表達式的字符串形式編譯成正則表達式對象 正則表達式對象

實例 (以查找郵政編碼爲例)

search函數

# search函數 向後找第一個符合條件的字符串
match = re.search(r'[1-9]\d{5}','BIT 221745 221746')
if match:
    print(match.group(0)) # 輸出 221745

match函數

# match函數 從“第一字符”開始匹配 返回第一個符合條件的字符串
match = re.match(r'[1-9]\d{5}','BIT 221745') # 匹配錯誤,因爲第一個是B而不是[1-9]
match = re.match(r'[1-9]\d{5}','221745 221746 BIT') # 匹配成功
if match:
    print(match.group(0)) # 輸出 221745

findall函數

# findall函數 搜索所有符合條件的字符串 以列表形式返回
match = re.findall(r'[1-9]\d{5}','BIT 221745 221746')
print(match) # 輸出 ['221745', '221746']

split函數

# split函數 按照匹配結果進行分割 返回列表類型
# maxsplit:最大分割數,剩餘部分作爲最後一個元素輸出
match = re.split(r'[1-9]\d{5}','ABC 221745 DEF 221746 GHI 221747')
print(match) # 輸出 ['ABC ', ' DEF ', ' GHI ', '']
match = re.split(r'[1-9]\d{5}','ABC 221745 DEF 221746 GHI 221747',maxsplit=1)
print(match) # 輸出 ['ABC ', ' DEF 221746 GHI 221747']
match = re.split(r'[1-9]\d{5}','ABC 221745 DEF 221746 GHI 221747',maxsplit=2)
print(match) # 輸出 ['ABC ', ' DEF ', ' GHI 221747']

finditer函數

# finditer函數 搜索字符串 返回一個匹配結果的迭代類型(match對象)
match = re.finditer(r'[1-9]\d{5}','ABC 221745 DEF 221746 GHI 221747')
for m in match:
    if m:
        print(m.group(0))
'''
輸出結果:
221745
221746
221747
'''

sub函數

# sub函數 在一個字符串中替換所有匹配正則表達式的子串 返回替換後的子串
# 這個例子中將郵政編碼全部替換成000000
match = re.sub(r'[1-9]\d{5}','000000','ABC 221745 DEF 221746 GHI 221747')
print(match) # 輸出 ABC 000000 DEF 000000 GHI 000000

compile函數

# compile函數 將字符串編譯成正則表達式對象
regex = re.compile(r'[1-9]\d{5}') # 經過一次編譯 可多次對此正則表達式進行使用
match = regex.search('ABC 221745 DEF 221746 GHI 221747')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章