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.mzph.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/