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

本文首發於公衆號「AntDream」,歡迎微信搜索「AntDream」或掃描文章底部二維碼關注,和我一塊兒天天進步一點點html

不少時候咱們須要過濾掉標點符號等特殊字符,網上雖然有一堆的方法,可是都沒有找到一個很是滿意的,有些過濾不了中文的標點符號,有些過濾不了英文的標點符號,有些過濾不全。python

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

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

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

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

測試一下:微信

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

輸出結果:測試

Poweonthe2333哈哈看看能夠嗎一行代碼就能夠了
複製代碼

一行代碼搞定!Perfect!ui

最後推薦你們官網re模塊的正則表達式文檔地址: docs.python.org/zh-cn/3.6/l… 裏面有很詳細的正則表達式介紹和舉例,關鍵仍是中文的喔!spa


歡迎關注個人公衆號查看更多精彩文章!
複製代碼

AntDream
相關文章
相關標籤/搜索