繁体   English   中英

在Python中使用单引号解析字符串

[英]Parsing strings with single quotation marks in Python

如果我有一个字符串:“我无法解析”,中间用单引号引起来,如何在不出现语法错误的情况下将其删除,并返回ICANTPARSETHIS? 我知道,如果改为“我无法解析”,它将起作用,但是我正在研究一个问题,其中潜在的输入中可能没有双引号。

您在这里误解了一些东西。 这里根本没有问题。

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

如果您的源代码使用字符串文字 ,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回显了使用所需最小引号样式的替代方法,并根据需要转义了引号。

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"

我不确定您的问题是什么...但是这两个示例说明您可以使用内部引号解析字符串

还证明了报价基本相同

所以我的理解是您要删除“不能”上的撇号吗?

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

或者如果您将其包含在变量中:

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

编辑:如前所述,第二个示例是语法错误,撇号上没有转义字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM