python re模塊常見函數

re.match()函數

若是想要從源字符串的起始位置匹配一個模式,咱們能夠使用re.match()函數。re.match()函數的使用格式是:
re.match(pattern, string, flag)php

re.search()函數

咱們還能夠使用re.search()函數進行匹配,使用該函數進行匹配,會掃描整個字符串並進行對應的匹配。
該函數與re.match()函數最大的不一樣是,re.match()函數從源字符串的開頭進行匹配,而re.search()函數會在全文中進行檢索匹配。
示例以下:python

import re

pattern1 = "python"
string = "abcdpythonfphp345pythonxadi_py"
result1 = re.search(pattern1, string)

print(result1)
print(result1.group())

執行結果:正則表達式

<_sre.SRE_Match object; span=(4, 10), match='python'>
python

re.compile()

在以上兩個函數中,即使源字符串中有多個結果符合模式,也只會匹配一個結果,那麼咱們如何將符合模式的內容所有都匹配出來呢?ide

  1. 使用re.compile()對正則表達式進行預編譯。
  2. 編譯後,使用findall()根據正則表達式從源字符串中將匹配的結果所有找出。

咱們能夠經過下面的實例更好理解:函數

import re

string = "hellomypythonhispythonourpythonend"
pattern = re.compile(".python.")#預編譯
result = pattern.findall(string)#找出符合模式的全部結果

print(result)

執行結果:spa

['ypythonh', 'spythono', 'rpythone']

能夠看到,這段代碼會將string中知足pattern模式的結果所有輸出,符合條件的結果一共有3個。code

re.sub()函數

若是,想根據正則表達式來實現替換某些字符串的功能,咱們能夠使用re.sub()函數來實現。
使用re.sub這個函數,會根據正式表達式pattern,從源字符串string查找出符合模式的結果,並替換爲字符串rep,最多可替換max次。
re.sub()函數的格式以下:
re.sub(pattern,rep,string,max)
其中,第一個參數爲對應的正則表達式,第二個參數爲要替換成的字符串,第三個參數爲源字符串,第四個參數爲可選項,表明最多替換的次數,若是忽略不寫,則會將符合模式的結果所有替換。字符串

import re

string = "hellomypythonhispythonourpythonend"
pattern = "python."
result1 = re.sub(pattern,"php",string)   # 所有替換
result2 = re.sub(pattern,"php",string,2) # 最多替換2次

print(result1)
print(result2)

結果以下:string

hellomyphpisphpurphpnd
hellomyphpisphpurpythonend

第一行輸出,因爲沒有設置第四個參數,所有替換。it

相關文章
相關標籤/搜索