Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!
s = 'It is "a" good "day" today.'
s'It is "a" good "day" today.'import re
m = re.search('".*?"', s)
m<_sre.SRE_Match object; span=(6, 9), match='"a"'>m.group(0)'"a"'help(m.group)Help on built-in function group:
group(...) method of _sre.SRE_Match instance
group([group1, ...]) -> str or tuple.
Return subgroup(s) of the match by indices or names.
For 0 returns the entire match.
expand¶
m.expand()---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-205cc63d2100> in <module>()
----> 1 m.expand()
TypeError: Required argument 'template' (pos 1) not foundgroup¶
Returns one or more subgroups of the match. If there is a single argument, the result is a single string; if there are multiple arguments, the result is a tuple with one item per argument. Without arguments, group1 defaults to zero (the whole match is returned). If a groupN argument is zero, the corresponding return value is the entire matching string; if it is in the inclusive range [1..99], it is the string matching the corresponding parenthesized group. If a group number is negative or larger than the number of groups defined in the pattern, an IndexError exception is raised. If a group is contained in a part of the pattern that did not match, the corresponding result is None. If a group is contained in a part of the pattern that matched multiple times, the last match is returned.
m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist")The entire match.
m.group(0)'Isaac Newton'The first paraenthesized subgroup.
m.group(1)'Isaac'The second parenthesized subgroup.
m.group(2)'Newton'Multiple arguments give us a tuple.
m.group(1, 2)('Isaac', 'Newton')If the regular expression uses the (?P...) syntax, the groupN arguments may also be strings identifying groups by their group name. If a string argument is not used as a group name in the pattern, an IndexError exception is raised.
A moderately complicated example:
m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Malcolm Reynolds")m.group("first_name")'Malcolm'm.group("last_name")'Reynolds'Named groups can also be referred to by their index:
m.group(1)'Malcolm'm.group(2)'Reynolds'If a group matches multiple times, only the last match is accessible:
m = re.match(r"(..)+", "a1b2c3") # Matches 3 times.m.group(1) # Returns only the last match.'c3'groups¶
start¶
end¶