python替換所有標點符號 正則_python 把標點符號替換為空

Python str.replace(old, new[, max]) 方法把字符串str中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個參數max,則替換不超過 max 次。

如果非要用replace()函數來實現要這樣寫:

import string

m =l

forc instring.punctuation:

m =m.replace(c,")

更簡便的方法是用translate(),代碼如下:

importstring

m =l.translate(None, string.punctuation)

中文文本中可能出現的標點符號來源比較復雜,通過匹配等手段對他們處理的時候需要格外小心,防止遺漏,下面小編帶來了Python處理中文標點符號大集合,感興趣的朋友跟隨腳本之家小編一起看看吧 。中文文本中可能出現的標點符號來源比較復雜,通過匹配等手段對他們處理的時候需要格外小心,防止遺漏。以下為在下處理中文標點的時候采用的兩種方法:

中文標點集合比較常見標點有這些:

!?。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗?????〝〞????–—‘'?“”??…?﹏.

調用zhon包的zhon.hanzi.punctuation函數即可得到這些中文標點。

如果想用英文的標點,則可調用string包的string.punctuation函數可得到:

!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~

因此,比如需要將所有標點符號去除,可以進行以下操作:

>>> importre

>>> fromzhon.hanzo importpunctuation

>>> line ="測試。。去除標點。。"

>>> printre.sub("[{}]+".format(punctuation), "", line.decode("utf-8")) # 需要將str轉換為unicode

當然,如果想去除重復的符號而只保留一個,那么可以用\1指明:比如

>>> re.sub(ur"([{}])+".format(punctuation), "\1", line.decode("utf-8"))

你也可以手工指定這些標點符號

punctuation ="""!?。"#$%&'()*+-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗?????〝〞????–—‘'?“”??…?﹏"""

re_punctuation ="[{}]+".format(punctuation)

line =re.sub(re_punctuation, "", line)

可以通過直接指定unicode碼范圍的辦法來strip,比如:

去除所有半角全角符號,只留字母、數字、中文

def remove_punctuation(line):

rule =re.compile(ur"[^a-zA-Z0-9\u4e00-\u9fa5]")

line =rule.sub('',line)

return line

漢字的范圍為”\u4e00-\u9fa5“,這個是用Unicode表示的,所以前面必須要加”u“;字符”r“的意思是表示忽略后面的轉義字符,這樣簡化了后面正則表達式里每遇到一個轉義字符還得挨個轉義的麻煩

最后可以組合成為一個函數

def remove_punctuation(line, strip_all=True):

if strip_all:

rule =re.compile(ur"[^a-zA-Z0-9\u4e00-\u9fa5]")

line =rule.sub('',line)

else:

punctuation ="""!?。"#$%&'()*+-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗?????〝〞????–—‘'?“”??…?﹏"""

re_punctuation ="[{}]+".format(punctuation)

line =re.sub(re_punctuation, "", line)

return line.strip()

清洗完畢后,有時候我們希望按照多個標點符號來分割 ,比如只要遇到中文或英文的逗號和句號等符號就分割,可以直接用translate把這些符號翻譯為統一的分隔符,再split:

strip_chars ='?"。.,,《》[]〖〗“”'

single_line =single_line.translate(str.maketrans(dict.fromkeys(strip_chars, '#')))

single_line =single_line.split('#')

總結

以上所述是小編給大家介紹的Python處理中文標點符號大集合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271393.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271393.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271393.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

無法打開“XXXX”,因為Apple無法檢查其是否包含惡意軟件。怎么解決?

今天在安裝navicat的時候&#xff0c;因為apple無法檢查其是否包含惡意軟件&#xff0c;大概是如下圖所示&#xff1a; 仔細查詢過后才發現&#xff0c;只需要在Mac上設置下即可&#xff0c;具體方法如下&#xff1a; 打開Mac自帶的軟件「終端」&#xff08;一般在“其它”這個…

vue路由跳轉子組件_vue-router之路由鉤子(組件內路由鉤子必須在路由組件調用,子組件沒用)...

模式vue-router中的模式選項主要在router實例化的時候進行定義的&#xff0c;如下const router new VueRouter({mode: ‘history‘, // 兩種類型history 還有 hashroutes: routes // 可以縮寫成routes})有兩種模式可供選擇&#xff0c;history 和 hash&#xff0c;大致對比一下…

計算機網絡基礎概念知識筆記

1、計算機網絡的發展階段 1.1、具有通信功能的單機系統 該階段的模式為終端-計算機網絡&#xff0c;屬于早期計算機網絡的主要形式。它將一臺計算機經過通信線路和若干個終端直接相連 1.2 具有通信功能的多機系統 針對單機系統的改進&#xff0c;在主計算機的外圍增加了一臺計算…

python模塊下載失敗_python 安裝tushare模塊出錯的一個解決方法

&#xff08;寫于20200519&#xff09; Tushare金融大數據社區 免費提供各類金融數據和區塊鏈數據。我學python的動力之一就是使用金融數據進行量化投資。 原以為安裝thshare是很容易的事&#xff0c;在cmd窗口輸入pip install tushare后&#xff0c;似乎安裝沒報錯&#xff0c…

winform中鍵盤和鼠標事件的捕捉和重寫(轉)

在 編寫winform應用程序時&#xff0c;有時需要無論在哪個控件獲取焦點時&#xff0c;對某一個鍵盤輸入或者鼠標事件都進行同樣的操作。比如編寫一個處理圖片的應用程序時&#xff0c; 希望無論當前哪個控件獲得焦點&#xff0c;當用戶按上、下、左、右鍵時&#xff0c;圖片控件…

redisTemplate獲得key的過期時間方法

/** * 從redis中獲取key對應的過期時間; * 如果該值有過期時間&#xff0c;就返回相應的過期時間; * 如果該值沒有設置過期時間&#xff0c;就返回-1; * 如果沒有該值&#xff0c;就返回-2; */ redisTemplate.opsForValue().getOperations().getExpire("key的名稱")

2020年“1024”,程序員日

1024程序員日向可愛的程序員致敬隨著時代的發展&#xff0c;大數據技術行業發展愈趨成熟&#xff0c;堅持自己對知識、技術和創新追求的程序員層出不窮。相信很多人都不知道&#xff0c;其實&#xff0c;程序員也有他們自己專屬的節日: 程序員日。每個節日都有自己的來歷和含義…

小程序內嵌h5頁面分享_微信小程序webview內頁面分享

因為項目原因&#xff0c;之前在微信小程序內部使用 webview 嵌套了 h5 頁面&#xff0c;現在要添加一個新的功能&#xff0c;用戶在哪個頁面進行了分享&#xff0c;被分享的用戶從鏈接進來就跳轉到哪個分享頁面。先了解一下 web-view 組件的限制&#xff0c;web-view 是承載網…

shell shift與{}_一文掌握shell腳本中shift的用法及功能

概述今天主要介紹下shell腳本中shift的一些用法&#xff0c;這個命令還是相對比較少見的。一、shift介紹shift命令用于對參數的移動(左移)&#xff0c;通常用于在不知道傳入參數個數的情況下依次遍歷每個參數然后進行相應處理(常見于Linux中各種程序的啟動腳本)。簡而言之&…

redisTemplate設置key零點過期,生成自增的單號

public String getId() {String key "finance:funs:code";Long incr getIncr(key);if (incr 0) {incr getIncr(key);//從0001開始}DecimalFormat df new DecimalFormat("0000");//四位序列號String format df.format(incr);return format;}public Lo…

docker log 文件 清理

1 查看docker log 文件位置 docker inspect *** 2 定時清理 truncate -s 0 /var/lib/docker/containers/*/*-json.log docker 日志管理 https://docs.docker.com/engine/admin/logging/json-file/ 全局配置 默認位置 /etc/docker/daemon.json 由dockerd 啟動參數 --config-fi…

計算機網絡基礎:常見的網絡傳輸介質

傳輸介質是信號傳遞的媒體&#xff0c;常用的網絡傳輸介質包括有線介質&#xff08;雙絞線、同軸電纜、光纖等&#xff09;和無線介質&#xff08;微波、紅外線、激光等&#xff09;。 1、雙絞線 雙絞線是目前最普遍的傳輸介質&#xff0c;分為兩類&#xff1a;屏蔽雙絞線&…

json為全局變量 vue_vue 設置全局變量、指定請求的 baseurl

一. 基本環境前端vue&#xff1a;2.5.6axios&#xff1a;0.18使用vue腳手架構建項目。參照&#xff1a;webstorm搭建vue項目后臺ssm框架前后端數據采用json格式傳輸二. 前端配置axios配置1.安裝&#xff1a;npm install axios --save2.在所需組件中引入axios&#xff1a;import…

java 多項式擬合最多的項數_Matlab概率統計與曲線擬合

一、二項分布二項分布來源于伯努利試驗 (事件發生概率 ) :含義為獨立重復N次試驗后, 事件總共發生k次的概率分布函數 二項分布記為 binopdf 獲得事件共發生次的概率 binocdf 為事件最多發生次的概率 binornd 將生成一個服從二項分布 規模為 的隨機矩陣二項分布的數字特征…

mysql -- MAC下安裝配置mysql

1:進入官網&#xff0c;鏈接是 https://dev.mysql.com/downloads/mysql/ 點擊第一個dmg文件&#xff0c;download 2:點擊 No thanks, just start my download. 3:下載到本地到dmg文件 4:安裝MySQL&#xff0c;雙擊 mysql.dmg 文件&#xff0c;進行安裝。 注意&#xff1a;安裝…

負載均衡配置與使用

Nginx負載均衡的理解 Nginx是一個輕量級的、高性能的WebServer&#xff0c;他主要可以干下面兩件事&#xff1a; 作為http服務器&#xff08;和apache的效果一樣&#xff09; 作為反向代理服務器實現負載均衡 現在Nginx到處都可以見到&#xff0c;經常會看到宕機后的網頁會顯示…

計算機網絡基礎:網絡分類和拓撲結構知識筆記

???????1、計算機網絡分類 城域網、廣域網、局域網網對比 網絡分類 縮寫 分布距離 計算機分布范圍 傳輸速率范圍 局域網 LAN 10、100、1000m左右 房間、樓寓、校園 4Mb/s- 1Gb/s 城域網 MAN 10KM左右 城市 50Kb/s-100Mb/s 廣域網 WAN 100KM左右 國家或…

php發送數據到視圖格式_PHP-FPM的相關知識的深度解釋

一、需要搞清楚幾個名詞概念1. CGI&#xff08;Common Gateway Interface&#xff0c;CGI&#xff09;通用網關接口, 是Web 服務器運行時外部程序的規范&#xff0c;按CGI 編寫的程序可以擴展服務器功能。CGI 應用程序能與瀏覽器進行交互&#xff0c;還可通過數據API與數據庫服…

stm32超聲波測距代碼_干貨!特斯拉Autopilot核心傳感器解讀超聲波雷達篇

加入高工智能汽車行業群(自動駕駛行業4群&#xff0c;車聯網智能座艙3群&#xff0c;智能商用車行業群)&#xff0c;加微信&#xff1a;15818636852&#xff0c;并出示名片&#xff0c;僅限智能網聯汽車零部件及OEM廠商。目前為止&#xff0c;特斯拉的Autopilot一共經歷了三代硬…

記錄

https://xclient.info/ https://www.macbl.com/ https://www.macwk.com/