如何在Python中移除字符串中的引号

735 阅读3分钟

简介

在Python中,有几种方法可以从一个字符串中去除引号。你可能需要去除所有的引号,或者只去除字符串周围的引号。你也可能需要删除单引号或双引号:

在这篇短文中,我们汇编了一个全面的列表,列出了你可以用来在 Python 中从字符串中去除引号的方法。至于使用哪种方法,完全取决于你自己。请注意,我们在这里列出的解决方案并不是从最好到最差的排序。只要它能满足你在特定情况下的需要,每个解决方案都是好的。

如何在Python中删除一个字符串中的所有引号

首先,让我们来看看如何从一个字符串中去除所有的引号。本节中列出的解决方案可以被改变,以便对单引号和双引号都起作用。但是,为了本文的目的,假设我们有一个字符串的例子,其中有三个双引号:

example_str = '"This is a string" with quotes"'

在本节中,我们将看一下如何从example_str ,删除所有"

str.replace()

我们要讨论的第一种方法是使用str.replace() 方法在example_str 。它接受两个参数--我们想要替换的字符串和替换的字符串。在这种情况下,我们将用一个空字符串替换一个双引号("):

new_str = example_str.replace('"', '')
print(new_str) # This is a string without quotes

以这种方式使用的str.replace() ,将删除example_str 中的所有双引号。

正则表达式

这种方法使用正则表达式来删除一个字符串中的所有引号。在我们开始在 Python 中使用正则表达式之前,我们首先需要导入re 模块:

import re

之后,我们可以使用re.sub() 方法将所有出现的引号都替换成空字符串:

new_str = re.sub('"', '', example_str)
print(new_str) # This is a string without quotes

这将给我们提供没有任何引号的example_str

str.join()

str.join() 是另一种方法,我们可以用它来去除 Python 中字符串的所有引号。如果你还不熟悉join() 方法,这个方案的语法比其他方案要复杂一些。我们基本上要逐字逐句地查看example_str ,并将每一个不是引号的字符附加到空字符串中。这样,我们就可以得到没有任何引号的example_str

new_str = ''.join(c for c in example_str if c not in '"')
print(new_str) # This is a string without quotes

如何删除字符串周围的引号

到目前为止,我们已经讨论了几种如何在 Python 中从一个字符串中去除所有引号的方法。这只是从一个字符串中去除引号的一种方法。可以说,更常见的问题是如何去除一个字符串周围的引号。 str.strip() 方法的目的就是要做到这一点。因此,我们将在本节中讨论str.strip() 方法。

假设我们有一个与上一节完全相同的example_str ,我们想只删除第一个和最后一个引号:

example_str = '"This is a string" with quotes"'

使用以双引号为参数的str.strip() ,将从example_str ,删除前引号和后引号:

new_str = example_str.strip('"')
print(new_str) # This is a string" without quotes

注意:无论字符串中有多少个前引号和/或后引号,str.strip() 都会将它们全部删除。

除了通常的str.strip() 方法外,还有两个衍生方法--str.lstrip()str.rstrip() 。 第一个方法删除所有前导引号,第二个方法删除所有尾部引号

new_str = example_str.lstrip('"')
print(new_str) # This is a string" without quotes"

new_str = example_str.rstrip('"')
print(new_str) # "This is a string" without quotes

结论

在这篇短文中,我们全面考察了如何在 Python 中去除字符串中的引号。首先,我们解释了如何使用几种不同的方法 -str.replace(),str.join(), 和re.sub() 从一个字符串中移除所有引号。之后,我们看了一下str.strip() 方法,以及它的衍生物str.lstrip()str.rstrip()