Skip to content

Groups

Atomic

Bases: RegexComponent

An atomic group.

Source code in src/pyregexbuilder/groups.py
29
30
31
32
33
34
35
class Atomic(RegexComponent):
    """
    An atomic group.
    """

    def __init__(self, *components: str | RegexComponent) -> None:
        self._regex = rf"(?>{self.parse(*components)})"

BranchReset

Bases: RegexComponent

A branch reset group.

Source code in src/pyregexbuilder/groups.py
38
39
40
41
42
43
44
class BranchReset(RegexComponent):
    """
    A branch reset group.
    """

    def __init__(self, *components: str | RegexComponent) -> None:
        self._regex = rf"(?|{'|'.join(self.parse(*components))})"

Capture

Bases: RegexComponent

A capture group. Can be named or unnamed.

Regex: (?P<name>...) or (...)

Source code in src/pyregexbuilder/groups.py
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
class Capture(RegexComponent):
    """
    A capture group. Can be named or unnamed.

    Regex: `(?P<name>...)` or `(...)`
    """

    def __init__(self, *components: str | RegexComponent, name: str | None = None):
        if name:
            self._regex = rf"(?P<{name}>{self.parse(*components)})"
        else:
            self._regex = rf"({self.parse(*components)})"

Reference

Bases: RegexComponent

A named or numbered reference to a previously captured group.

Regex: \g<...>

Source code in src/pyregexbuilder/groups.py
18
19
20
21
22
23
24
25
26
class Reference(RegexComponent):
    r"""
    A named or numbered reference to a previously captured group.

    Regex: `\g<...>`
    """

    def __init__(self, ref: str | int) -> None:
        self._regex = rf"\g<{ref}>"