Introduction
We've already used groups in several examples throughout Chapter 2
Regular Expressions with Python. Grouping is accomplished through two metacharacters, the parentheses ()
. The simplest example of the use of parentheses would be building a subexpression. For example, imagine you have a list of products, the ID for each product being made up of two or three sequences of one digit followed by a dash and followed by one alphanumeric character, 1-a2-b:
>>>re.match(r"(\d-\w){2,3}", ur"1-a2-b") <_sre.SRE_Match at 0x10f690738>
As you can see in the preceding example, the parentheses indicate to the regex engine that the pattern inside them has to be treated like a unit.
Let's see another example; in this case, we need to match whenever there is one or more ab
followed by c
:
>>>re.search(r"(ab)+c", ur"ababc") <_sre.SRE_Match at 0x10f690a08> >>>re.search(r"(ab)+c", ur"abbc") None
So, you could use parentheses whenever you want to group meaningful subpatterns...