如果我有一个字符串:'我无法用中间的单引号解析',如何在不出现语法错误的情况下删除它,并返回ICANTPARSETHIS?我知道如果它是“我无法解析这个”它会起作用,但我正在研究一个问题,即潜在的输入可能没有围绕它的双引号。
答案 0 :(得分:4)
你在这里误解了一些东西。这里没有任何问题。
语法错误仅适用于源代码。字符串值是不是源代码。
如果源代码使用字符串 literals ,Python会解析这些并生成字符串 value 。字符串文字可能有一个语法错误,但如果没有错误,它将产生一个字符串值,就是那个值。
在Python解释器中,这些字符串值使用与字符串文字相同的格式表示,以便于调试和复制回解释器。请放心,Python解释器知道如何正确地转义这些值中的引号:
>>> """Text with a single quote: '"""
"Text with a single quote: '"""
>>> """We can use a double quote too: ". See?"""
'We can use a double quote too: ". See?'
>>> """Even mixing " and ' is not a problem."""
'Even mixing " and \' is not a problem.'
我在那里使用了三重引用的文字语法,但Python回声使用了所需的最小引用样式,并根据需要转义引号。
答案 1 :(得分:2)
print "Parse 'this string' to something".split()
print re.findall(some_pattern,"this is a string with `internal quotation` marks")
print 'quotes' == "quotes" == """quotes""" == '''quotes''' == u'quotes' == u"quotes"
我不确定你的问题是什么......但是这两个例子证明你可以解析带有内部引号的字符串
也证明了报价基本相同
答案 2 :(得分:1)
所以我的理解是你要删除“不能”的撇号?
'I can't parse this'.replace("'", "")
>>> 'I cant parse this'
或者如果你有变量:
s = 'I can\'t parse this'
s.replace("'", "")
>>> 'I cant parse this'
编辑:正如所指出的那样,第二个例子是语法错误,没有撇号上的转义字符。