考虑以下情况:
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
那么我们如何获取引号而不包括斜杠呢?
请不要建议使用r'what"ever'
,因为那样问题就变成了如何同时包含这两种引号?
考虑以下情况:
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
那么我们如何获取引号而不包括斜杠呢?
请不要建议使用r'what"ever'
,因为那样问题就变成了如何同时包含这两种引号?
如果你想在字符串中使用双引号但不使用单引号,你只需将单引号作为定界符即可:
r'what"ever'
如果你的字符串中需要两种引号,可以使用三重引号字符串:
r"""what"ev'er"""
如果你想在同一个字符串中包含两种三引号字符串(这是非常不可能的情况),那么你无法做到,你需要使用带转义字符的非原始字符串。
r"原始字符串"
和C#的 @"@引号字符串"
和 """三重引号字符串"""
。 - mpenr'what"ever'
不是解析错误吗?你是不是想说r'what"ever'
? - nmrr''''foo"'''
和r""""foo'"""
可以很好地生成这样的字符串。 - Adam Rosenfield如果您需要任何类型的引号(单引号、双引号和三重引号),可以将字符串“组合”(0):
>>> raw_string_with_quotes = r'double"' r"single'" r'''double triple""" ''' r"""single triple''' """
>>> print raw_string_with_quotes
double"single'double triple""" single triple'''
你也可以将"原始字符串"(0)与非原始字符串结合使用:
>>> r'raw_string\n' 'non-raw string\n'
'raw_string\\nnon-raw string\n'
(0): 实际上,Python解析器会将字符串连接在一起,而不是创建多个字符串。如果添加"+"运算符,则会创建并组合多个字符串。Python有多种字符串表示方式。以下的字符串语法可以让你使用双引号:
'''what"ever'''
自从我偶然发现了这个答案,它对我有很大的帮助,但是我发现了一个小的语法问题,我觉得我应该避免其他人可能会遇到的困惑。三引号字符串对于描述的情况有效,但请注意,如果你想在字符串中使用的 " 出现在字符串本身的末尾:
somestr = """This is a string with a special need to have a " in it at the end""""
执行时会出现错误,因为四个连续的引号""""使字符串读取器混淆,它认为已经到达了字符串的末尾,然后发现一个随机的"。您可以通过在4个引号之间插入一个空格来验证这一点,如下所示:" """,这样就不会出错。
在这种特殊情况下,您需要使用以下方法之一:
somestr = 'This.....at the end"'
Nevermind,答案是原始三引号字符串:
r"""what"ever"""
为了包含新的Python f字符串兼容功能:
var_a = 10
f"""This is my quoted variable: "{var_a}". """
f"foo\"bar"
。 - mpen使用:
dqote='"'
sqote="'"
使用'+'运算符和dqote
和squote
变量来获取你需要的内容。
如果我想要sed -e s/",u'"/",'"/g -e s/^"u'"/"'"/
,你可以尝试以下方法:
dqote='"'
sqote="'"
cmd1="sed -e s/" + dqote + ",u'" + dqote + "/" + dqote + ",'" + dqote + '/g -e s/^"u' + sqote + dqote + '/' + dqote + sqote + dqote + '/'