python的re模塊中正則匹配的幾個函數的使用

一.sub函數

1.sub函數用於替換字符串中的匹配項

2.語法:re.sub(pattern, repl, string, count=0, flags=0)

pattern : 被替換的字符串。
repl : 替換的字符串,也可爲一個函數。
string : 要被查找替換的原始字符串。
count : 模式匹配後替換的最大次數,默認 0 表示替換所有的匹配。

3.舉例

c = 'python123java44python&C#C'

r1 = re.sub('python', 'php', c, 1)
r2 = re.sub('python', 'php', c, 2)
print(r1)
print(r2)

結果爲:

php123java44python&C#C
php123java44php&C#C

如果第二個參數傳入的爲函數,如下例:

c = 'python123java44python&C#C'
def temp(value):
    # 傳入的value看上去是被替換的字符串,但實質是個對象
    # group函數獲取截獲的對象代表的字符串
    match = value.group()
    return '---'+match+'---'

r1 = re.sub('python', temp, c)
print(r1)

結果爲:

---python---123java44---python---&C#C

二、findall函數

1.在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。
2.語法:re.findall(pattern, string, flags=0):

pattern:正則表達式
string:被匹配的字符串
flags:標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫(re.l),多行匹配(re.M), 使 ‘.’ 匹配包括換行在內的所有字符(re.S)等
3.舉例

b = 'pytho0python1pythonn2'

r2 = re.findall('python', b)
print(r2)
['python', 'python']

三、match函數

1.從字符串的起始位置匹配,如果起始位置匹配未成功的話,match()就返回none。
2.語法:re.match(pattern, string, flags=0)

pattern 正則表達式
string 要匹配的字符串。

四、search函數

1.掃描整個字符串並返回第一個成功的匹配。
2.語法:re.search(pattern, string, flags=0)

pattern 匹配的正則表達式
string 要匹配的字符串。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章