如何在 Python 中从字符串中删除标点符号

字符串是不同字符、字母、数字、特殊字符和标点符号的组合。 有时我们需要去除标点符号来处理字符串,所以在本文中,我们将讨论使我们能够从字符串中去除标点符号的方法。

1. 通过使用 translate() 方法

2. 通过使用 re.sub() 方法

3. 使用for循环和replace函数

1. 通过使用 translate() 方法

这是从字符串中删除标点符号的最快方法之一。 translate() 方法将翻译表作为参数,该参数由 maketrans() 方法创建并从字符串中删除标点符号。

例子:

pun = '''!()-[]{};:'",<>./[email protected]#$%^&*_~'''

A = 'wow! what? is this []punctuation.'

B = A.translate(str.maketrans('', '', pun))

print(B)

图 1:使用 translate() 方法

输出:

图 2:输出

在图 1 中,我们将所有标点符号定义为一个字符串。 要从字符串“A”中删除标点符号,我们使用 maketrans() 方法创建一个转换表,该方法接受三个参数:第一个和第二个参数是空字符串,而第三个参数是一个标点符号字符串。 创建翻译表后, translate() 方法会从字符串中删除标点符号,如图 2 所示。

2. 通过使用 re.sub() 方法

正则表达式模块有许多帮助选择标点符号的字符类,因此通过使用正则表达式模块的替换功能可以从字符串中删除标点符号。

例子:

import re

A = 'wow! what? is this []punctuation.'

B = re.sub(r'[^ws]', '', A)

print(B)

图形用户界面,文本描述自动生成

图 3:使用 re.sub() 函数

输出:

图 4:输出

在上述 example,我们导入正则表达式并使用带三个参数的替换函数:一个是模式 [^ws] 它表示不包括单词和空格的字符,第二个是替换,它是一个空字符串,第三个是字符串’A’。 我们看到在图 4 中实现了替换函数后,标点符号被从字符串中删除了。

3. 使用for循环和replace函数

replace 函数对字符串中的字符进行一次替换,因此要检查字符串的所有索引,我们需要一个 for 循环。 For 循环将遍历字符串并进行所有替换以删除标点符号。

示例 1:

import string

A = 'wow! what? is this []punctuation.'

for character in string.punctuation:

A = A.replace(character, '')

print(A)

文本描述自动生成

图 5:使用替换功能

输出:

图 6:输出

在上述 example,我们导入字符串库,因为这里我们使用的是一组标点符号 string.punctuation。 为了删除字符串中的标点符号,我们使用带有替换功能的 for 循环。 Replace 函数用空格替换标点符号并返回更新后的字符串,如图 6 所示。

示例 2:

pun = '''!()-[]{};:'",<>./[email protected]#$%^&*_~'''

A = 'wow! what? is this []punctuation.'

for character in pun:

A = A.replace(character, '')

print(A)

文本描述自动生成

图 7:使用替换功能

输出:

图 8:输出

在这个 example 2、我们将标点符号声明为字符串,并使用 for 循环搜索标点符号,如果找到匹配项,则将值替换为空字符串,并获取更新后的字符串,如图 8 所示。