python两个方法删除文本中的标点符号

本文介绍了如何使用Python的正则表达式和string模块来删除字符串中的英文字符和中文字符。首先,通过`re.sub()`函数移除非字母数字字符,然后利用`string.punctuation`和`zhon.hanzi`库分别针对英文和中文进行替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.正则表达式(可以删除中英文字符)

import re
a=re.sub(r'[\W]','',s)
.替换任意1个字符(除了\n)
[ ]替换[ ]中列举的字符
\d替换数字,即0-9
\D替换非数字
\s替换空格,tab键
\S替换非空白
\w替换非特殊字符,即a-z、A-Z、0-9、_、汉字
\W替换特殊字符,即非字母、非数字、非汉字、非_

2.使用string模块的punctuation函数

1)删除英文字符

import string
for i in string.punctuation:
    s=s.replace(i,'')//replace(,)是对字符串进行修改,remove()是对列表进行修改
print(s)

2)删除中文字符

!pop install zhon//进行下载

from zhon.hanzi import punctuation
for i in punctuation:
    s=s.replace(i,'')
print(s)

要在Python中获取字符串中标点符号的数量,你可以使用`string`模块中的`punctuation`属性配合列表推导式或正则表达式等方法来实现。以下是几种常见的做法: ### 方法一:使用 `string.punctuation` 这是最直接的一种方式。 ```python import string def count_punctuations(text): # 创建一个包含所有标点符号的集合 punct_set = set(string.punctuation) # 统计文本中有多少字符属于这个集合 return sum(1 for char in text if char in punct_set) # 示例用法 text_example = "Hello, world! This is a test..." print(f"标点符号数量: {count_punctuations(text_example)}") ``` 这种方法利用了`string.punctuation`提供的标准ASCII标点符号集,并通过遍历输入字符串检查每个字符是否存在于该集中来进行统计。 ### 方法二:使用正则表达式 (re 模块) 如果你需要处理更复杂的场景,比如非ASCII的标点符号,则可以考虑使用正则表达式的匹配功能。 ```python import re def count_punctuations_re(text): # 定义用于匹配任意单个标点符号的模式 pattern = r'[^\w\s]' matches = re.findall(pattern, text) # 找出所有的标点符号 return len(matches) # 示例用法 text_example = "你好!世界... 这是一个测试?" print(f"标点符号数量: {count_punctuations_re(text_example)}") ``` 此方法能够识别并计算包括但不限于英文、中文在内的多种语言环境下的标点符号。不过需要注意调整正则表达式的具体规则以便适应特定需求。 这两种方法都可以有效地帮助你在给定字符串中找到并统计标点符号的总数,选择哪种取决于实际的应用场合和个人偏好。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值