find all matches in a string python code example

Example 1: python find all elements of substring in string

def find_all(a_str, sub):
    start = 0
    while True:
        start = a_str.find(sub, start)
        if start == -1: return
        yield start
        start += len(sub) # use start += 1 to find overlapping matches

list(find_all('spam spam spam spam', 'spam')) # [0, 5, 10, 15]

Example 2: python .findall

## Search for pattern 'bb' in string 'aabbcc'.
  ## All of the pattern must match, but it may appear anywhere.
  ## On success, match.group() is matched text.
  match = re.search(r'bb', 'aabbcc') # found, match.group() == "bb"
  match = re.search(r'cd', 'aabbcc') # not found, match == None

  ## . = any char but \n
  match = re.search(r'...c', 'aabbcc') # found, match.group() == "abbc"

  ## \d = digit char, \w = word char
  match = re.search(r'\d\d\d', 'p123g') # found, match.group() == "123"
  match = re.search(r'\w\w\w', '@@abcd!!') # found, match.group() == "abc"