【正則表達式05】re 模塊深入應用

字符串切割

 

  • 代碼內容
str1 = 'fqx is a good man'
print(str1.split(' '))
print(re.split(r' +', str1))

 

  • 代碼示例圖 

 

字符串的替換和修改

 

sub(pattern, repl, string, count=0, flags=0)
subn(pattern, repl, string, count=0, flags=0)

pattern 正則表達式
repl    指定的用來替換的字符串
string  目標字符串
count   最多替換次數
flags   見上

功能:在目標字符串中,以正則表達式的規則匹配字符串,
        再把他們替換成指定的字符串,可以指定替換的次數,如果不指定
        替換所有的匹配字符串
區別:sub 返回一個被替換的字符串,後者返回一個元組,第一個元素是替換的字符串,後邊是次數

 

  • 代碼內容
str3 = 'fqx is a good man good'

print(re.sub(r'(good)','nice',str3))

print(type(re.sub(r'(good)','nice',str3)))

print(re.subn(r'(good)','nice',str3))

print(type(re.subn(r'(good)','nice',str3)))

 

  • 代碼示例圖

 

 

 

分組

 

  • 除了簡單的判斷是否匹配之外,正則表達式還有提取子串的功能,用()表示分組

 

  • 代碼內容
str4 = '110-12345678'

# ?P起別名
m = re.match(r'(?P<first>\d{3})-(?P<second>\d{8})',str4)
# group(0) 代表原始字符串
print(m.group(0))

# 第1組
print(m.group(1))
# 第2組
print(m.group(2))

# 查看匹配的各組的情況
print(m.groups())

 

  • 代碼示例圖

 

 

 

re.finditer 函數

 

原型:finditer(patter,string,flags=0)
patter:匹配的正則表達式
string:要匹配的字符串
flags:標誌位,用於控制正則表達式的匹配方式
功能:掃描整個字符串,返回一個迭代器,避免佔滿內存

 

  • 代碼內容
str2 = 'fqx is a good man ! fqx is a nice man ! fqx is a very headsome man!'

d = re.finditer(r'fqx', str2)

while True:
    try:
        # 在循環中,next()方法會在每次循環中調用,該方法返回文件的下一行
        l = next(d)
        print(d)
    except StopAsyncIteration as e:
        break

 

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