Thanks for sharing this. I took the time to read through the documentation of the re
module. Here's my review of the functions.
Useful:
re.finditer
returns an iterator over all Match objectsre.search
returns the first Match object or None if there are no matches.r''
use raw strings for patters so you don't have to worry about backslashes- the optional
flags
argument modifies the behaviour (case insensitive, multiline)
Utility:
re.sub
replace each match in the stringre.split
split a string by a regular expression
The Match object:
match.groups(0)
returns the portion of text matched by the patternmatch.groups(1)
returns the first capturing groupmatch.groups(2)
returns the second capturing group, and so on
I don't understand why these exist:
re.match
like search, but only matches at the beginning of the string. why not just use '^' or '\A' in the pattern you pass to 'search'?re.fullmatch
like 'search', but only if the full string matches. Why not just use '\A' and '\Z' in the pattern you pass to 'search'?re.findall
Returns all matches. It seems like a shitty version of 'finditer'. The function has three different return types which depend on the pattern you pattern you pass to the function. Who wants to work with that?