In Python compiled regex patterns have a findall method that does the following:
Return all non-overlapping matches of pattern in string, as a list
Use the /g modifier in your match. From the perlop manual:
The "
/g" modifier specifies global pattern matching--that is, matching as many times as possible within the string. How it behaves depends on the context. In list context, it returns a list of the substrings matched by any capturing parentheses in the regular expression. If there are no parentheses, it returns a list of all the matched strings, as if there were parentheses around the whole pattern.In scalar context, each execution of "
m//g" finds the next match, returning true if it matches, and false if there is no further match. The position after the last match can be read or set using thepos()function; see "pos" inperlfunc. A failed match normally resets the search position to the beginning of the string, but you can avoid that by adding the "/c" modifier (e.g. "m//gc"). Modifying the target string also resets the search position.