【问题标题】:python find the middle of “=” index in string [duplicate]python在字符串中找到“=”索引的中间[重复]
【发布时间】:2017-03-16 13:07:24
【问题描述】:

eg '“Hello Word” = “hello world”;', '“Hello=Word” = “Hello=Word”',通过python找到“=”的中间位置。 我试试这个

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

我希望它返回 13

【问题讨论】:

  • 第一个=在位置6...
  • 这里的逻辑到底是什么?你想要'=' 的第二次出现吗?中间那个?如果是这样,如果有偶数怎么办?或者,也许您想找到第一个没有用引号括起来的?有十几种方法可以做到这一点,但问题是哪一种最合适。

标签: python string indexing position


【解决方案1】:

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

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

这假定字符串是您指定的格式,在 = 的任一侧使用双引号 " 分隔字符串。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-06-01
      • 2011-10-22
      • 2021-06-30
      • 2016-12-02
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2016-12-21
      • 1970-01-01
      相关资源
      最近更新 更多