如何去掉字符串开头和结尾的双引号?

120

我想从以下内容中去除双引号:

string = '"" " " ""\\1" " "" ""'

获得:

string = '" " " ""\\1" " "" "'
我尝试使用 rstriplstripstrip('[^\"]|[\"$]'),但它没有起作用。
我该怎么做?

6
正确答案如下。关于您使用strip的方法,请注意:a)该方法不接受正则表达式作为其参数;b)您提供的正则表达式本来也不会起作用;c)该方法删除所有相邻字符,而不仅仅是一个,因此您将失去两个双引号,即使使用.strip('"') - Tim Pietzcker
13个回答

1

我有一些需要去除单引号或双引号的代码,但是我不能简单地使用 ast.literal_eval。

if len(arg) > 1 and arg[0] in ('"\'') and arg[-1] == arg[0]:
    arg = arg[1:-1]

这与ToolmakerSteve的答案类似,但允许长度为0的字符串,并且不将单个字符"转换为空字符串。

0
以下函数将剥离空格并返回没有引号的字符串。如果没有引号,则返回相同的字符串(已剥离)。
def removeQuote(str):
str = str.strip()
if re.search("^[\'\"].*[\'\"]$",str):
    str = str[1:-1]
    print("Removed Quotes",str)
else:
    print("Same String",str)
return str

-1

找到字符串中第一个和最后一个 " 的位置

>>> s = '"" " " ""\\1" " "" ""'
>>> l = s.find('"')
>>> r = s.rfind('"')

>>> s[l+1:r]
'" " " ""\\1" " "" "'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接