简介
在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() 。