str.find
и его брат rfind
имеют start
и end
args.
alpha = 'qawsed'
bravo = 'azsxdc'
startpos = text.find(alpha) + len(alpha)
endpos = text.find(bravo, startpos)
do_something_with(text[startpos:endpos]
Это самый быстрый способ, если содержащийся текст короткий и почти спереди.
Если содержащийся текст является относительно большим, используйте:
startpos = text.find(alpha) + len(alpha)
endpos = text.rfind(bravo)
Если содержащийся текст короткий и ближе к концу, используйте:
endpos = text.rfind(bravo)
startpos = text.rfind(alpha, 0, endpos - len(alpha)) + len(alpha)
Первый метод в любом случае лучше, чем наивный метод начала второго поиска с начала текста; используйте его, если у вашего содержащегося текста нет доминирующего шаблона.