在Python中解析带单引号的字符串

在Python中解析带单引号的字符串,python,string,parsing,char,escaping,Python,String,Parsing,Char,Escaping,如果我有一个像“我不能解析这个”这样的字符串,中间只有一个引号,我如何删除它而不出现语法错误,并返回ICAntPasseThis?我知道如果它是“我不能解析这个”,它会工作,但是我正在研究一个潜在输入可能没有双引号的问题 print "Parse 'this string' to something".split() print re.findall(some_pattern,"this is a string with `internal quotation` marks") print 'q

如果我有一个像“我不能解析这个”这样的字符串,中间只有一个引号,我如何删除它而不出现语法错误,并返回ICAntPasseThis?我知道如果它是“我不能解析这个”,它会工作,但是我正在研究一个潜在输入可能没有双引号的问题

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"
我不知道你的问题是什么。。。但这两个示例演示了可以解析带有内部引号的字符串


还证明了引号基本上是相同的,所以我的理解是你想删除“不能”上的撇号

或者,如果变量中有:

s = 'I can\'t parse this'
s.replace("'", "")
>>> 'I cant parse this'

编辑:正如前面指出的,第二个例子是一个语法错误,撇号上没有转义字符。

您误解了这里的某些内容。这里根本没有问题

语法错误只适用于源代码。字符串值不是源代码

如果源代码使用字符串文字,Python将解析这些文字并生成字符串值。字符串文字可能有语法错误,但如果没有错误,它将生成一个字符串值,即一个值

在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采用了使用所需最小引号样式的替代方法,并根据需要转义引号符号。

引号只是字符串文字中的语法错误,可以通过适当的引号或使用三重引号字符串来处理。但听起来好像您正在尝试处理程序输入,在这种情况下,这不是问题。您到底想在这里做什么?如果您在Python 2中使用
input()
,请改用
raw\u input()
,并避免将您的输入完全视为Python表达式。请发布示例输入和预期输出,以及您为此编写的任何代码。目前,由于不清楚您要的是什么,这将最终关闭。自动标记将传入一个字符串值。自动标记器如何生成该字符串不是您的问题;一旦你有了一个字符串值,根据定义,你就不会有语法错误。我忘记了转义字符,但这实际上将str设置为一个双引号str,单引号仍然在那里。没错,这说明OP不理解这里发生了什么。你知道吗?我确实理解,我不理解OP,他/她没有使用文字,而是潜在的输入。另外,我通常不会测试这样的问题,所以在输入框中输入错误只是一个错误。我的错。
>>> """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.'