String Formatting

Simon Forman rogue_pedro at yahoo.com
Thu Aug 10 14:30:19 EDT 2006


OriginalBrownster wrote:
> Hi there:
>
> I was wondering if its at all possible to search through a string for a
> specific character.
>
> I want to search through a string backwords and find the last
> period/comma, then take everything after that period/comma
>
> Example
>
> If i had a list:    bread, butter, milk
>
> I want to just take that last entry of milk. However the need for it
> arises from something more complicated.
>
> Any help would be appreciated

The rfind() method of strings will search through a string for the
first occurance of a substring, starting from the end.  (find() starts
from the beginning.)

|>> s = "bread, butter, milk"
|>> s.rfind(',')
13
|>> s.rfind('!')
-1
|>> s[s.rfind(',') + 1:]
' milk'

If you want to find either a period or comma you could do it like this:

|>> i = max(s.rfind(ch) for ch in ',.')
|>> i
13
|>> s[i + 1:]
' milk'

Here's the output of help(s.rfind):
Help on built-in function rfind:

rfind(...)
    S.rfind(sub [,start [,end]]) -> int

    Return the highest index in S where substring sub is found,
    such that sub is contained within s[start,end].  Optional
    arguments start and end are interpreted as in slice notation.

    Return -1 on failure.


Enjoy


Peace,
~Simon




More information about the Python-list mailing list