34 lines · 926 B · Python
RawDownload
# strutil.py - string utilities for Mercurial## Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com>## This software may be used and distributed according to the terms of the# GNU General Public License version 2, incorporated herein by reference. def findall(haystack, needle, start=0, end=None):    if end is None:        end = len(haystack)    if end < 0:        end += len(haystack)    if start < 0:        start += len(haystack)    while start < end:        c = haystack.find(needle, start, end)        if c == -1:            break        yield c        start = c + 1 def rfindall(haystack, needle, start=0, end=None):    if end is None:        end = len(haystack)    if end < 0:        end += len(haystack)    if start < 0:        start += len(haystack)    while end >= 0:        c = haystack.rfind(needle, start, end)        if c == -1:            break        yield c        end = c - 1