中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏。以下为在下处理中文标点的时候采用的两种方法:

中文标点集合

比较常见标点有这些:

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

调用zhon包的zhon.hanzi.punctuation函数即可得到这些中文标点。

如果想用英文的标点,则可调用string包的string.punctuation函数可得到:

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

因此,比如需要将所有标点符号去除,可以进行以下操作:

>>> import re

>>> from zhon.hanzo import punctuation

>>> line = "测试。。去除标点。。"

>>> print re.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处理中文标点符号大集合

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

  2. python替换所有标点符号 正则_python 把标点符号替换为空

    Python str.replace(old, new[, max]) 方法把字符串str中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次. 如 ...

  3. python统计出现的中文标点_Python处理中文标点符号大集合

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

  4. python标点符号分中英文嘛_Python处理中文标点符号大集合

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

  5. c语言中可以输入中文标点符号,SCIM中 输入中文标点符号的方法

    方法一: 切换到智能拼音输入法,使用 ibdfh 或 ifuhao 或 isymbol 可以输入中文标点符号,当然还包括更多你可能需要的符号.透过上面的内容,其实也蛮好记的,第一个是 i 加上标点符号 ...

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

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

  7. python统计汉字个数是_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  8. python怎么统计多少字符_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  9. python 爬取财经新闻_Python光大证券中文云系统——爬取新浪财经新闻

    [任务目标] 调通光大证券中文云系统 [任务进度] 依据Github光大证券中文云系统开源的说明文档,应该是分爬虫模块.检索模块.统计模块.关键词频模块和关键词网络模块,是一个整体非常庞大的系统.现在 ...

最新文章

  1. Nginx的server块和location块的简单说明
  2. 一个12年ABAP开发专家和ABAP那些事儿
  3. C++工作笔记-虚函数、纯虚函数、虚析构函数的进一步理解
  4. 忆阻尖峰神经网络中基于STDP的模式识别学习的必要条件
  5. 将MinimalLinux安装在U盘中
  6. bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测
  7. 电音插件auto_Antares 发布新型人声制作插件 Auto-Tune EFX +
  8. matlab卡方拟合优度检验,卡方拟合优度检验在教学中的应用及Matlab实现_刘泽显...
  9. 面试记录-蚂蚁金服-算法工程师(共四面)通过
  10. 计算机表格增加,怎样在表格中新增一行和上排一样格式的表格。
  11. Python趣味脚本,做一个简单的抽奖刮刮卡
  12. iphone怎么连接itunes相关解锁教程
  13. 用IMAP4访问Exchange邮箱
  14. java super构造函数_Java为什么this()和super()必须是构造函数中的第一条语句?...
  15. 【JS】 # js获取当前日期,比较日期大小
  16. latex sty文件设置
  17. 为何线下支付更多人选择微信而不是支付宝?
  18. js实现拖拽合成两张图片和文字,并包括 即时生成的二维码
  19. 纯Go实现的Firebase的替代品 | Gopher Daily (2021.08.11) ʕ◔ϖ◔ʔ
  20. IR Cut Filter主要作用分别是什么?_什么是钻石的4C?

热门文章

  1. 华红兵:移动互联网时代,场景理论的四大特征
  2. PoweShell Win_desktop install wsl
  3. C语言scanf()返回值以及EOF
  4. 大学物理第二章 质点动力学详解
  5. AcWing_4262
  6. 基于TI AM5728(浮点双DSP C66x +双ARM Cortex-A15)的开发板
  7. Docker容器处于Removal in process 无法删除解决方案
  8. iop导出excel,简单例子。
  9. 完全平方数:若一个整数n能表示成某个整数m的平方的形式,则称这个数为完全平方数。写一个程序判断输入的整数是不是完全平方数。
  10. Linux之基础IO