Если вам нужно подсчитать перекрывающиеся вхождения, вам лучше проверить ответы здесь или просто проверьте мой другой ответ ниже.
Ответ 2
s = 'arunununghhjj' sb = 'nun' results = 0 sub_len = len(sb) for i inrange(len(s)): if s[i:i+sub_len] == sb: results += 1 print results
Ответ 3
В зависимости от того, что вы на самом деле имеете в виду, я предлагаю следующие решения:
Вы имеете в виду список подстрок, разделенных пробелом, и хотите знать, каков номер позиции подстроки среди всех подстрок:
s = 'sub1 sub2 sub3' s.split().index('sub2') >>> 1
Вы имеете в виду позицию символа подстроки в строке:
s.find('sub2') >>> 5
Вы имеете в виду (неперекрывающиеся) подсчеты появления sub-bstring:
s.count('sub2') >>> 1 s.count('sub') >>> 3
Ответ 4
Лучший способ найти перекрывающиеся подстроки в данной строке - использовать регулярное выражение. С помощью lookahead программа найдет все перекрывающиеся совпадения, используя библиотеку регулярных выражений findall(). Здесь слева находится подстрока, а справа - строка для сопоставления.