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



我有一个问题:

E.x.我有一句话

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 包含以下字符:

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

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

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

输出:

'AAA BBB CCC DDDEEE'

试试这段代码:

import re
input_str = "AAA? BBB. CCC! DDD.EEE"
output_str = re.sub('[^A-Za-z0-9]+', ' ', input_str)
print output_str

'AAA BBB CCC DDD EEE'

你也可以这样做:

punctuation = "!@#$%^&*()_+<>?:.,;"  # add whatever you want
s = "AAA? BBB. CCC!" 
for c in s:
if c in punctuation:
s = s.replace(c, "")
print(s)
>>> "AAA BBB CCC"

使用:

import re
" ".join(re.split('W+', s))

这将拆分所有非单词字符上的字符串,然后通过单个空格连接各个子字符串。

这是一种使用str.strip和简单迭代的方法。

前任:

from string import punctuation
s = "AAA? BBB. CCC! DDD.EEE"
def cleanString(strval):
return "".join(" " if i in punctuation else i for i in strval.strip(punctuation))
s = " ".join(cleanString(i) for i in s.split())
print(s)

输出:

AAA BBB CCC DDD EEE

看看这个:

if __name__ == "__main__":
test_string = "AAA? BBB. CCC! DDD.EEE"
result = "".join((char if char.isalpha() else " ") for char in test_string)
print(result)

Result: AAA  BBB  CCC  DDD EEE

试试这个:

import string
exclude = set(string.punctuation)
exclude.remove(".")
doc = "AAA? BBB. CCC! DDD.EEE"
for punctuation in exclude:
doc = doc.replace(punctuation,"")
doc = doc.replace("."," ")
doc = doc.split()
print(" ".join(doc))

我知道不是每个人都有这种情况,但我正在编写一个国际化的应用程序,它有点重。这就是我想出的:

[编辑以添加"导入正则表达式"] - 感谢安吉

import regex
random_string = "~`!ќ®†њѓѕў‘“ъйжюёф №%:,)( ЛПМКё…∆≤≥“™ƒђ≈≠»"
clean_string = regex.sub( r'[^ws]', '', random_string )
print( clean_string )

结果是:

ќњѓѕўъйжюёф  ЛПМКёƒђ

这适用于多种语言中的各种字母和特殊字符。我已经在几种语言上测试了它,每个特殊字符和键盘上的一些常规字符。仍然需要去除一些无法检测到的特殊标记。

简单但功能强大。希望对某人有所帮助。

相关内容

  • 没有找到相关文章

最新更新