python - 如何删除python中的标点符号?

标签 python string punctuation

我有一个问题:

例如我有一句话

s = "AAA? BBB. CCC!" 

所以,我这样做:

import string
table = str.maketrans('', '', string.punctuation)
s = [w.translate(table) for w in s]

一切都很好。我的新句子将是:

s = "AAA BBB CCC"

但是,如果我输入如下句子:

s = "AAA? BBB. CCC! DDD.EEE"

在删除标点符号后,我将使用与下面相同的方法

s = "AAA BBB CCC DDDEEE"

但需要:

s = "AAA BBB CCC DDD EEE"

有什么思路/方法可以解决这个问题吗?

最佳答案

string.punctuation包含以下字符:

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

您可以使用 translate 和 maketrans 函数将标点符号映射到空值(替换)

import string

'AAA? BBB. CCC! DDD.EEE'.translate(str.maketrans('', '', string.punctuation))

输出:

'AAA BBB CCC DDDEEE'

关于python - 如何删除python中的标点符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53664775/

相关文章:

Python:Portaudio Errno -9986 内部 PortAudio 错误

java - 如何在 Java 中拆分 '*' 字符串

c# - 用于匹配重复的连续标点符号的正则表达式,但 3 个句点除外

arrays - 如何丢弃用户输入中除 a-z && A-Z && 0-9 之外的所有字符以查找可能的回文

python - Tensorflow CNN训练图像大小不一

python - 使用 paramiko 进行 x11 转发

python - 为什么再次读取文件读取速度更快?

Java字符串比较

php - 我们如何使用 php 从此字符串中删除诸如 "�"之类的字符

Python 从除撇号外的 unicode 字符串中删除标点符号