Python一行代碼過濾標點符號等特殊字符

本文首發於公衆號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點

很多時候我們需要過濾掉標點符號等特殊字符,網上雖然有一堆的方法,但是都沒有找到一個非常滿意的,有些過濾不了中文的標點符號,有些過濾不了英文的標點符號,有些過濾不全。

最後通過查看正則表達式文檔,發現一個高效的辦法,一行代碼就能搞定:

def replace_all_blank(value):
    """
    去除value中的所有非字母內容,包括標點符號、空格、換行、下劃線等
    :param value: 需要處理的內容
    :return: 返回處理後的內容
    """
    # \W 表示匹配非數字字母下劃線
    result = re.sub('\W+', '', value).replace("_", '')
    print(result)
    return result

其中用到了Pythonre模塊,re模塊裏面包含了所有的正則表達式的應用。代碼裏面有幾個點:

  1. re.sub(參數1,參數2,參數3)方法,表示匹配到以後替換。其中參數1表示正則匹配的模式,參數2表示匹配到以後用參數2替換原內容,參數3表示要處理的字符串
  2. \W這個正則表示匹配非數字字母下劃線,所以下劃線是不會被替換的,上面可以看到用replace方法去掉了下劃線

測試一下:

replace_all_blank("Powe, on;the 2333, 。哈哈 !!看看可以嗎?一行代碼就可以了!^_^")

輸出結果:

Poweonthe2333哈哈看看可以嗎一行代碼就可以了

一行代碼搞定!Perfect!

最後推薦大家官網re模塊的正則表達式文檔地址:
https://docs.python.org/zh-cn/3.6/library/re.html
裏面有很詳細的正則表達式介紹和舉例,關鍵還是中文的喔!

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