字符串處理
成都創(chuàng)新互聯(lián)公司主營河?xùn)|網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),河?xùn)|h5小程序定制開發(fā)搭建,河?xùn)|網(wǎng)站營銷推廣歡迎河?xùn)|等地區(qū)企業(yè)咨詢
1,字符串分割
(a)split 方法
str1 = "http:// www.qwe, qwe; qwe,qwe" import re re.split(r'[,;\s]\s*',str1) >>> ['http://', 'www.qwe', 'qwe', 'qwe', 'qwe']
一般簡單的可以使用 str.split("xxx")進(jìn)行分割。但是re.split( ) 用起來更加的靈活。
2, 字符串開頭和結(jié)尾
(a) str.startswith( )/str.endswith( )
filename = "http://zaixiankefu.txt" filename.endswith(".txt") >>>True filename.startswith("http:") >>>True # startswith( )和 endswith( )可以接收一個(gè)元組數(shù)據(jù),注意是元組。 choice = (".txt",".avi") filename.endswith(choice) >>>True
(b) 也可以使用切片來判斷
if filename[:4] == "http" and filename[-4:] == ".txt": return True
3,字符串匹配
簡單的就是str.startswith( ),str.endswith( ),str.find(),前兩種返回時(shí)bool 值,find是返回第一次匹配的下標(biāo)值。
使用正則進(jìn)行匹配(更多方法參考正則文檔)。
(a)re.match( )
match 總是從字符串開始去匹配 。如匹配則返回一個(gè)匹配對象,失敗返回None。
str1 = "2018/12/20" import re re.match(r'\d*/',str1) >>> <_sre.SRE_Match object; span=(0, 5), match='2018/'>
(b) re.search( )
search 會匹配整個(gè)字符串。如匹配則返回一個(gè)匹配對象,失敗返回None。
re.search(r'/\d*/',str1) >>> <_sre.SRE_Match object; span=(4, 8), match='/12/'>
(c) re.findall( )
findall( )會匹配整個(gè)字符串,匹配則返回一個(gè)list列表,要么有值要么空
如果返回的值過多,可以使用 finditer( )來替代。
str1 = "www.baidu.com" import re re.finditer(r'w',str1) #會返回一個(gè)可迭代對象 >>>
忽略大小寫進(jìn)行匹配
4,字符串替換
簡單的替換可以使用 str.replace(old,new) 進(jìn)行操作。
re.sub( )可以更加靈活處理。
反斜杠數(shù)字,例如 \3 指向前面模式的捕獲組號。
5,字符串中插入變量
使用 format 和 format_map( ) + vars( )來進(jìn)行處理。
vars( )實(shí)現(xiàn)的是在變量域中找到所需的變量。
缺點(diǎn)是,變量缺失后,會直接報(bào)錯(cuò)。如果變量未找到
可以使用類進(jìn)行包裝。