您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)python如何刪除字符串中指定字符的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
Python是一種跨平臺(tái)的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計(jì)是用于編寫自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。
import re temp = "司法局讓我和戶 1 5. 8 0. ?。。?? 客戶維護(hù)戶外" temp = temp.decode("utf8") string = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()]+".decode("utf8"), "".decode("utf8"),temp) print string
或者是這樣的
'''引入string模塊''' import string '''使用標(biāo)點(diǎn)符號(hào)常量''' string.punctuation text = "*/@》--【】--12()測(cè)試*()" '''去除字符串中所有的字符,可增加自定義字符''' def strclear(text,newsign=''): import string # 引入string模塊 signtext = string.punctuation + newsign # 引入英文符號(hào)常量,可附加自定義字符,默認(rèn)為空 signrepl = '@'*len(signtext) # 引入符號(hào)列表長(zhǎng)度的替換字符 signtable = str.maketrans(signtext,signrepl) # 生成替換字符表 return text.translate(signtable).replace('@','') # 最后將替換字符替換為空即可 strclear(text,'》【】')
我一開始用的后面的這個(gè),著實(shí)是有點(diǎn)暴力,于是找了查了一下原文檔,發(fā)現(xiàn)python3中完全有更好的方法去實(shí)現(xiàn)這樣的功能(似乎是新更新的?不太清楚,我的是python最新版本3.6.6)
和上面的方法一樣是利用的是str的translate()和maketrans()
translate()自然不用說這里的重點(diǎn)是maketrans(),先放上官方的文檔
static str.maketrans(x[, y[, z]]) This static method returns a translation table usable for str.translate(). If there is only one argument, it must be a dictionary mapping Unicode ordinals (integers) or characters (strings of length 1) to Unicode ordinals, strings (of arbitrary lengths) or None. Character keys will then be converted to ordinals. If there are two arguments, they must be strings of equal length, and in the resulting dictionary, each character in x will be mapped to the character at the same position in y. If there is a third argument, it must be a string, whose characters will be mapped to None in the result.
可以看出maketrans是可以放三個(gè)參數(shù)的(以前一直以為只有兩個(gè)....)
前兩個(gè)參數(shù)是需要一一對(duì)應(yīng)進(jìn)行替換,需要字符串長(zhǎng)度相同
第三個(gè)參數(shù)是直接替換為None
這里就直接上代碼了
import string i = 'Hello, how are you!' i.translate(str.maketrans('', '', string.punctuation)) >>>'Hello how are you' i = 'hello world i am li' i.translate(str.maketrans('','','l')) >>>'heo word i am i'
這里的string.punctuation 是python內(nèi)置的標(biāo)點(diǎn)符號(hào)的合集
感謝各位的閱讀!關(guān)于“python如何刪除字符串中指定字符”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。