2017-03-16 92 views
0

例如'“Hello Word”=“hello world”;','“Hello = Word”=“Hello = Word”',找到“=”由python定位。 我试试这个python在字符串中找到“=”索引的中间部分

>>>line = '"Hello=Word" = "Hello=Word"' 
>>>index = line.index("=") 
>>> index 
6 

我希望它回到13

+0

第一个'='在位置6 ... –

+2

究竟是什么逻辑?你想要第二次出现''=''?中间的那个?如果是这样,如果偶数?或者,也许你想找到第一个不包含在引号中的?有十几种方法可以做到这一点,但问题是哪一个最适合。 –

+0

请看看这个http://stackoverflow.com/questions/11122291/python-find-char-in-string-can-i-get-all-indexes – MaxLunar

回答

1

可能的情况下,使用正则表达式。

import re 
re.search(r'^".*".*(=).*".*"$', line).start(1) 

这是假定该字符串指定的形式,与上=两侧的双引号"分隔字符串的。

1

实际上,您还可以通过enumerate(line)查看所有出现的字符串=。它会返回一个enumerate对象,该对象是可迭代的并包含格式为(索引,项目)的元组。所以,可以这样使用:

>>> occurrences = [x[0] for x in enumerate(line) if x[1] == '='] 
>>> occurrences 
[6, 13, 21] 

现在你应该选择你需要的索引。