27 сентября 2014 г.

Python: Определение позиции подстроки (функции str.find и str.rfind)

Определение позиции подстроки в строке с помощью функций str.find и str.rfind.
In [1]: str = 'ftp://dl.dropbox.com/u/7334460/Magick_py/py_magick.pdf'

Функция str.find показывает первое вхождение подстроки. Все позиции возвращаются относительно начало строки.
In [2]: str.find('/')
Out[2]: 4


In [3]: str[4]
Out[3]: '/'


Можно определить вхождение в срезе. первое число показывает начало среза, в котором производится поиск. Второе число — конец среза. В случае отсутствия вхождения подстроки выводится -1.
In [4]: str.find('/', 8, 18)
Out[4]: -1


In [5]: str[8:18]
Out[5]: '.dropbox.c'


In [6]: str.find('/', 8, 22)
Out[6]: 20


In [7]: str[8:22]
Out[7]: '.dropbox.com/u'


In [8]: str[20]
Out[8]: '/'


Функция str.rfind осуществляет поиск с конца строки, но возвращает позицию подстроки относительно начала строки.
In [9]: str.rfind('/')
Out[9]: 40


In [10]: str[40]
Out[10]: '/'