从"从右到左获取字符串的位置"

时间:2017-03-31 23:59:50

标签: regex python-2.7 function find

它又是我。

这次我需要帮助才能找到字符串的位置,但是从右到左。

例如:

  1. 新车是:> SUV Ford(用户档案: 1191.jpg ),好的;)
  2. 电池故障:>>皮卡雪佛兰(用户档案: 23.jpg ),坏:'(
  3. 新车是:> SUV起亚(用户档案: 8.jpg ),好的;)
  4. 新车是:> SUV丰田(用户档案: 27411058.jpg ),好的;)
  5. 电池故障:>>> SUV Dodge(用户档案: 9409.jpg ),BAD,优先级
  6. 所以,我想获得' NUMBER.jpg' 的位置,但是从右到左:

    1. 索引编号:8 - >从右到左
    2. 索引编号:10 - >从右到左
    3. 索引编号:8 - >从右到左
    4. 索引编号:8 - >从右到左
    5. 索引编号:16 - >从右到左
    6. 我怎么能在python 2.7中做到这一点?

      @ dot.Py你在哪里?我需要你的支持。

2 个答案:

答案 0 :(得分:1)

与此同时,你不会得到其他的" pythonic"答案,这里有一个" hack":

import re
print re.search("gpj", line[::-1]).start() # "gpj" as it reads in reverse 

或者,提到的伪代码G5W可能是这样的:

import re
match = "jpg"
pos = re.search(match, line).start()
print len(line) - pos - len(match)
无论哪种方式,应该得到:

8
10
8
8
16

答案 1 :(得分:0)

结果在捕获组1中。

从结尾(最右边)开始并回溯直到找到它为止 这是最快的方法(引擎优化速度)。

.*((?<!\d)\d+\.jpg)

扩展

 .* 
 (                             # (1 start)
      (?<! \d )
      \d+ 
      \. jpg 
 )                             # (1 end)