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处理中文标点符号大集合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

python替换所有标点符号 正则_python 把标点符号替换为空相关推荐

  1. python爬虫入门必备正则_python 爬虫入门之正则表达式 一

    python  正则表达式知识点 正则 常用符号 . : 匹配任意字符,换行符除外 * : 匹配前一个字符 0 次或者无限次 ? : 匹配前一个字符 0次或者1次 .* : 贪心算法 .*? :非贪心 ...

  2. js mysql替换_JavaScript_js使用正则实现ReplaceAll全部替换的方法,JS 字符串有replace() 方法。但这 - phpStudy...

    js使用正则实现ReplaceAll全部替换的方法 JS 字符串有replace() 方法.但这个方法只会对匹配到的第一个字串替换. 如下例: New Document var str = " ...

  3. python替换所有标点符号 正则_Python处理中文标点符号大集合

    中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏.以下为在下处理中文标点的时候采用的两种方法: 中文标点集合 比较常见标点有这些: !?。"#$%& ...

  4. python如何替换文件部分内容_python 实现批量替换文本中的某部分内容

    一.介绍 在做YOLOv3项目时,会需要将文本文件中的某部分内容进行批量替换和修改,所以编写了python程序批量替换所有文本文件中特定部分的内容. 二.代码实现 import re import o ...

  5. php 顿号转义,PHP实现将标点符号正则替换为空格的方法

    本文实例讲述了PHP实现将标点符号正则替换为空格的方法.分享给大家供大家参考,具体如下: $character = "!@#$%^&*中'文中'文中'文().,<>|[] ...

  6. vb.net 正则 替换 第n个_Python中正则表达式模块详解

    作者:python来源:SegmentFault 思否社区 正则表达式用来处理字符串,对字符串进行检索和替换,另外正则在python爬虫的应用也是相当广泛! 特点 灵活性.逻辑性和功能性非常强 可以迅 ...

  7. python正则_python的正则表达式

    上次小编写了正则表达式的用法,今天就小编就讲讲正则表达式再python中的应用,在python中想使用正则表达式就需要导入re模块. 接下来小编将先介绍re模块中几个常见的函数 findall: re ...

  8. php 正则匹配中文标点,JavaScript_js实现正则匹配中文标点符号的方法,本文实例讲述了js正则匹配中 - phpStudy...

    js实现正则匹配中文标点符号的方法 本文实例讲述了js正则匹配中文标点符号的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: js正则匹配中文标点符号 function ch ...

  9. 只能输入中文,及中文标点符号正则/只能输入英文,及英文标点符号正则

    //只能输入中文,及中文标点符号正则 var regChina = /^[\u4e00-\u9fa5\s\·\~\!\@\#\¥\%\--\&\*\(\)\--\-\+\=\[\]\{\}\. ...

最新文章

  1. 2022-2028年中国香薰行业市场研究及前瞻分析报告
  2. 列举出php代码级的优化技巧,php 代码优化的42条建议 推荐
  3. java分布式对象——远程方法中的参数和返回值+远程对象激活
  4. [Leetcode][第63题][JAVA][不同路径2][动态规划][压缩路径]
  5. 027 Android 可扩展的listview:ExpandableListView的使用案例
  6. leetcode刷题:z字形变换
  7. [译] 如何用 Python 写一个 Discord 机器人
  8. 老人机java游戏模拟器_KEmulator(JAVA手机游戏模拟器)
  9. [转载]U盘文件夹乱码无法删除的原因及解决方案
  10. c++ opencv数字图像处理:频率域滤波--同态滤波
  11. (转)用PS删除去掉GIF动画图片的背景
  12. 什么是javaEE、javaSE、javaME,这三者区别是什么?
  13. 慢就是快的人生哲理_非常精辟的人生哲理句子,句句经典睿智,不管多忙都要看看!...
  14. centos7安装noIP-动态域名解析最佳实践
  15. 宁王比神联手,率锂电池和材料厂,决战锂矿
  16. PHP开源技术大全(四)
  17. 使用dd命令克隆整个系统
  18. 湖北武汉施工员报考排给水和电气的施工方法建筑七大员报考
  19. 安卓开发仿微信图片拖拽_仿微信朋友圈发表图片拖拽和删除功能
  20. 植物大战僵尸2android最新版,植物大战僵尸2

热门文章

  1. 数字后端——可制造性设计
  2. get_metrology_object_result_contour查询计量对象的结果轮廓
  3. HALCON示例程序measure_metal_part_id.hdev使用xld边缘拟合检测零件加工是否合格
  4. 学习笔记(02):Python网络编程并发编程-assert断言的用途
  5. win10+tensorflow CPU 部署CTPN环境
  6. python获取当前时间的源代码_Python获取时间戳代码实例
  7. 灰度图像的8位平面分解
  8. 计算机无法正常更新,无法完成更新正在撤销更改请不要关闭你的计算机如何修复...
  9. 电脑dns_win10系统dns错误如何解决「系统天地」
  10. wdcp mysql密码_wdcp默认的mysql密码是多少?