很多時候我們需要過濾掉標點符號等特殊字符,網上雖然有一堆的方法,但是都沒有找到一個非常滿意的,有些過濾不了中文的標點符號,有些過濾不了英文的標點符號,有些過濾不全。
最后通過查看正則表達式文檔,發現一個高效的辦法,一行代碼就能搞定:
def replace_all_blank(value): """ 去除value中的所有非字母內容,包括標點符號、空格、換行、下劃線等 :param value: 需要處理的內容 :return: 返回處理后的內容 """ # \W 表示匹配非數字字母下劃線 result = re.sub('\W+', '', value).replace("_", '') print(result) return result
其中用到了 Python 的 re 模塊, re 模塊里面包含了所有的正則表達式的應用。代碼里面有幾個點:
\W
測試一下:
replace_all_blank("Powe, on;the 2333, 。哈哈 !!看看可以嗎?一行代碼就可以了!^_^")
輸出結果:
Poweonthe2333哈哈看看可以嗎一行代碼就可以了
一行代碼搞定!Perfect!
最后推薦大家官網 re 模塊的正則表達式文檔地址:
https://docs.python.org/zh-cn/3.6/library/re.html
知識點擴展:
python過濾中英文標點符號
import re # 過濾不了\\ \ 中文()還有―――― r1 = u'[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~]+'#用戶也可以在此進行自定義過濾字符 # 者中規則也過濾不完全 r2 = "[\s+\.\!\/_,$%^*(+\"\']+|[+――!,。?、~@#¥%……&*()]+" # \\\可以過濾掉反向單杠和雙杠,/可以過濾掉正向單杠和雙杠,第一個中括號里放的是英文符號,第二個中括號里放的是中文符號,第二個中括號前不能少|,否則過濾不完全 r3 = "[.!//_,$&%^*()<>+\"'?@#-|:~{}]+|[――!\\\\,。=?、:“”‘'《》【】¥……()]+" # 去掉括號和括號內的所有內容 r4 = "\\【.*?】+|\\《.*?》+|\\#.*?#+|[.!/_,$&%^*()<>+""'?@|:~{}#]+|[――!\\\,。=?、:“”‘'¥……()《》【】]" text = "\崔蕓,\\我愛=+你!【我//""們】~――――結/婚'吧::!這.!!_#??()個‘'“”¥$主|意()不錯......!" print(re.sub(r1, , '', text))
總結
以上所述是小編給大家介紹的一行代碼Python過濾標點符號等特殊字符,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
