如何获得转义字符的正确位置?

时间:2016-02-15 05:18:45

标签: python string find

取这个变量

str = 'how{"to\"get\"this"}position'

我想得到字符串\"的位置,它应该是7

print str.find('\"')返回4,因为转义字符。

print str.find('\"')('\')(r'\'),返回-1,无结果

那么我应该用什么来获得正确的结果?

实际的字符串是' [{...," HTML":"< spanclass = \" icon-pitisscon-service-duliag \">",....}]' ,它是一个json格式的字符串, 由于\"我无法使用json.loads()函数,我该怎么办?感谢

2 个答案:

答案 0 :(得分:1)

strhow{"to"get"this"}position,其中没有\";因此find(r'\"')将返回-1

>>> str = 'how{"to\"get\"this"}position'
>>> str
'how{"to"get"this"}position'
>>> 

如果你想要str = how{"to\"get\"this"}position那么;

>>> str = r'how{"to\"get\"this"}position'
>>> str
'how{"to\\"get\\"this"}position'
>>> str.find(r'\"')
7
>>> 

答案 1 :(得分:0)

您存储了错误的字符串(Escape missing)。对于您已存储的字符串,如果您通过print str打印来检查str,则会获得how{"to"get"this"}position,这就是您的搜索失败的原因。搜索字符串也应该正确转义。

正确的方法是

str = 'how{"to\\"get\\"this"}position'
print str.find('\\"')`