Python Reverse Find in String

前端 未结 2 2028
渐次进展
渐次进展 2020-12-14 14:43

I have a string and an arbitrary index into the string. I want find the first occurrence of a substring before the index.

An example: I want to find the index of the

相关标签:
2条回答
  • 2020-12-14 15:17

    I became curious how to implement looking n times for string from end by rpartition and did this nth rpartition loop:

    orig = s = "Hello, I am 12! I like plankton but I don't like Baseball."
    found = tail = ''
    nthlast = 2
    lookfor = 'I'
    for i in range(nthlast):
        tail = found+tail
        s,found,end = s.rpartition(lookfor)
        if not found:
            print "Only %i (less than %i) %r in \n%r" % (i, nthlast, lookfor, orig)
            break
        tail = end + tail
    else:
        print(s,found,tail)
    
    0 讨论(0)
  • 2020-12-14 15:28

    Your call tell rfind to start looking at index 34. You want to use the rfind overload that takes a string, a start and an end. Tell it to start at the beginning of the string (0) and stop looking at index:

    >>> s = "Hello, I am 12! I like plankton but I don't like Baseball."
    >>> index = 34 #points to the 't' in 'but'
    >>> index_of_2nd_I = s.rfind('I', 0, index)
    >>>
    >>> index_of_2nd_I
    16
    
    0 讨论(0)
提交回复
热议问题