📅  最后修改于: 2023-12-03 15:04:19.570000             🧑  作者: Mango
当处理字符串时,常常需要将标点符号去除,以便进行下一步处理。Python有很多方法可以去除字符串中的标点符号,本文将介绍其中两种方法。
Python的标准库string模块提供了一个包含所有ASCII字符的字符串变量string.punctuation,它可以用来去除字符串中的标点符号。
import string
def remove_punctuations(text):
"""
从字符串中删除标点符号
:param text: 待处理的字符串
:return: 删除了标点符号的字符串
"""
translator = str.maketrans('', '', string.punctuation)
return text.translate(translator)
使用str.maketrans方法创建一个删除标点符号的翻译表(translator),再使用translate方法将文本应用于翻译表并返回处理后的字符串。
另一种常用的方法是使用正则表达式,通过匹配标点符号并将其替换为空格来去除它们。
import re
def remove_punctuations(text):
"""
从字符串中删除标点符号
:param text: 待处理的字符串
:return: 删除了标点符号的字符串
"""
return re.sub(r'[^\w\s]', '', text)
使用re.sub方法将正则表达式r'[^\w\s]'应用于文本,其中[^\w\s]表示匹配所有非字母数字字符和非空格字符,这里相当于匹配所有标点符号。
无论使用哪种方法,都可以快速、简单地去除字符串中的标点符号。