一行Python代碼過濾標點符號等特殊字符
很多時候我們需要過濾掉標點符號等特殊字符,網(wǎng)上雖然有一堆的方法,但是都沒有找到一個非常滿意的,有些過濾不了中文的標點符號,有些過濾不了英文的標點符號,有些過濾不全。
最后通過查看正則表達式文檔,發(fā)現(xiàn)一個高效的辦法,一行代碼就能搞定:
def replace_all_blank(value):
"""
去除value中的所有非字母內(nèi)容,包括標點符號、空格、換行、下劃線等
:param value: 需要處理的內(nèi)容
:return: 返回處理后的內(nèi)容
"""
# \W 表示匹配非數(shù)字字母下劃線
result = re.sub('\W+', '', value).replace("_", '')
print(result)
return result
其中用到了 Python 的 re 模塊, re 模塊里面包含了所有的正則表達式的應用。代碼里面有幾個點:
\W
測試一下:
replace_all_blank("Powe, on;the 2333, 。哈哈 ??!看看可以嗎?一行代碼就可以了!^_^")
輸出結果:
Poweonthe2333哈哈看看可以嗎一行代碼就可以了
一行代碼搞定!Perfect!
最后推薦大家官網(wǎng) re 模塊的正則表達式文檔地址:
https://docs.python.org/zh-cn/3.6/library/re.html
知識點擴展:
python過濾中英文標點符號
import re
# 過濾不了\\ \ 中文()還有————
r1 = u'[a-zA-Z0-9'!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘'![\\]^_`{|}~]+'#用戶也可以在此進行自定義過濾字符
# 者中規(guī)則也過濾不完全
r2 = "[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()]+"
# \\\可以過濾掉反向單杠和雙杠,/可以過濾掉正向單杠和雙杠,第一個中括號里放的是英文符號,第二個中括號里放的是中文符號,第二個中括號前不能少|(zhì),否則過濾不完全
r3 = "[.!//_,$&%^*()<>+\"'?@#-|:~{}]+|[——!\\\\,。=?、:“”‘'《》【】¥……()]+"
# 去掉括號和括號內(nèi)的所有內(nèi)容
r4 = "\\【.*?】+|\\《.*?》+|\\#.*?#+|[.!/_,$&%^*()<>+""'?@|:~{}#]+|[——!\\\,。=?、:“”‘'¥……()《》【】]"
text = "\崔蕓,\\我愛=+你!【我//""們】~————結/婚'吧::!這.!!_#??()個‘'“”¥$主|意()不錯......!"
print(re.sub(r1, , '', text))
總結
以上所述是小編給大家介紹的一行代碼Python過濾標點符號等特殊字符,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
Ubuntu 16.04 LTS中源碼安裝Python 3.6.0的方法教程
最近Python 3發(fā)布了新版本Python 3.6.0,好像又加入了不少黑魔法!由于暫時不能使用 apt-get 的方式安裝 Python 3.6,所以還是直接編譯源碼安裝吧。下面這篇文章就介紹了在Ubuntu 16.04 LTS中源碼安裝Python 3.6.0的方法教程,需要的朋友可以參考下。2016-12-12

