Skip to main content

Alternative regular expression module, to replace re.

Project description

Introduction

This regex implementation is backwards-compatible with the standard ‘re’ module, but offers additional functionality.

Python 2

Python 2 is no longer supported. The last release that supported Python 2 was 2021.11.10.

PyPy

This module is targeted at CPython. It expects that all codepoints are the same width, so it won’t behave properly with PyPy outside U+0000..U+007F because PyPy stores strings as UTF-8.

Multithreading

The regex module releases the GIL during matching on instances of the built-in (immutable) string classes, enabling other Python threads to run concurrently. It is also possible to force the regex module to release the GIL during matching by calling the matching methods with the keyword argument concurrent=True. The behaviour is undefined if the string changes during matching, so use it only when it is guaranteed that that won’t happen.

Unicode

This module supports Unicode 16.0.0. Full Unicode case-folding is supported.

Flags

There are 2 kinds of flag: scoped and global. Scoped flags can apply to only part of a pattern and can be turned on or off; global flags apply to the entire pattern and can only be turned on.

The scoped flags are: ASCII (?a), FULLCASE (?f), IGNORECASE (?i), LOCALE (?L), MULTILINE (?m), DOTALL (?s), UNICODE (?u), VERBOSE (?x), WORD (?w).

The global flags are: BESTMATCH (?b), ENHANCEMATCH (?e), POSIX (?p), REVERSE (?r), VERSION0 (?V0), VERSION1 (?V1).

If neither the ASCII, LOCALE nor UNICODE flag is specified, it will default to UNICODE if the regex pattern is a Unicode string and ASCII if it’s a bytestring.

The ENHANCEMATCH flag makes fuzzy matching attempt to improve the fit of the next match that it finds.

The BESTMATCH flag makes fuzzy matching search for the best match instead of the next match.

Old vs new behaviour

In order to be compatible with the re module, this module has 2 behaviours:

  • Version 0 behaviour (old behaviour, compatible with the re module):

    Please note that the re module’s behaviour may change over time, and I’ll endeavour to match that behaviour in version 0.

    • Indicated by the VERSION0 flag.

    • Zero-width matches are not handled correctly in the re module before Python 3.7. The behaviour in those earlier versions is:

      • .split won’t split a string at a zero-width match.

      • .sub will advance by one character after a zero-width match.

    • Inline flags apply to the entire pattern, and they can’t be turned off.

    • Only simple sets are supported.

    • Case-insensitive matches in Unicode use simple case-folding by default.

  • Version 1 behaviour (new behaviour, possibly different from the re module):

    • Indicated by the VERSION1 flag.

    • Zero-width matches are handled correctly.

    • Inline flags apply to the end of the group or pattern, and they can be turned off.

    • Nested sets and set operations are supported.

    • Case-insensitive matches in Unicode use full case-folding by default.

If no version is specified, the regex module will default to regex.DEFAULT_VERSION.

Case-insensitive matches in Unicode

The regex module supports both simple and full case-folding for case-insensitive matches in Unicode. Use of full case-folding can be turned on using the FULLCASE flag. Please note that this flag affects how the IGNORECASE flag works; the FULLCASE flag itself does not turn on case-insensitive matching.

Version 0 behaviour: the flag is off by default.

Version 1 behaviour: the flag is on by default.

Nested sets and set operations

It’s not possible to support both simple sets, as used in the re module, and nested sets at the same time because of a difference in the meaning of an unescaped "[" in a set.

For example, the pattern [[a-z]--[aeiou]] is treated in the version 0 behaviour (simple sets, compatible with the re module) as:

  • Set containing “[” and the letters “a” to “z”

  • Literal “–”

  • Set containing letters “a”, “e”, “i”, “o”, “u”

  • Literal “]”

but in the version 1 behaviour (nested sets, enhanced behaviour) as:

  • Set which is:

    • Set containing the letters “a” to “z”

  • but excluding:

    • Set containing the letters “a”, “e”, “i”, “o”, “u”

Version 0 behaviour: only simple sets are supported.

Version 1 behaviour: nested sets and set operations are supported.

Notes on named groups

All groups have a group number, starting from 1.

Groups with the same group name will have the same group number, and groups with a different group name will have a different group number.

The same name can be used by more than one group, with later captures ‘overwriting’ earlier captures. All the captures of the group will be available from the captures method of the match object.

Group numbers will be reused across different branches of a branch reset, eg. (?|(first)|(second)) has only group 1. If groups have different group names then they will, of course, have different group numbers, eg. (?|(?P<foo>first)|(?P<bar>second)) has group 1 (“foo”) and group 2 (“bar”).

In the regex (\s+)(?|(?P<foo>[A-Z]+)|(\w+) (?P<foo>[0-9]+) there are 2 groups:

  • (\s+) is group 1.

  • (?P<foo>[A-Z]+) is group 2, also called “foo”.

  • (\w+) is group 2 because of the branch reset.

  • (?P<foo>[0-9]+) is group 2 because it’s called “foo”.

If you want to prevent (\w+) from being group 2, you need to name it (different name, different group number).

Additional features

The issue numbers relate to the Python bug tracker, except where listed otherwise.

Added \p{Horiz_Space} and \p{Vert_Space} (GitHub issue 477)

\p{Horiz_Space} or \p{H} matches horizontal whitespace and \p{Vert_Space} or \p{V} matches vertical whitespace.

Added support for lookaround in conditional pattern (Hg issue 163)

The test of a conditional pattern can be a lookaround.

>>> regex.match(r'(?(?=\d)\d+|\w+)', '123abc')
<regex.Match object; span=(0, 3), match='123'>
>>> regex.match(r'(?(?=\d)\d+|\w+)', 'abc123')
<regex.Match object; span=(0, 6), match='abc123'>

This is not quite the same as putting a lookaround in the first branch of a pair of alternatives.

>>> print(regex.match(r'(?:(?=\d)\d+\b|\w+)', '123abc'))
<regex.Match object; span=(0, 6), match='123abc'>
>>> print(regex.match(r'(?(?=\d)\d+\b|\w+)', '123abc'))
None

In the first example, the lookaround matched, but the remainder of the first branch failed to match, and so the second branch was attempted, whereas in the second example, the lookaround matched, and the first branch failed to match, but the second branch was not attempted.

Added POSIX matching (leftmost longest) (Hg issue 150)

The POSIX standard for regex is to return the leftmost longest match. This can be turned on using the POSIX flag.

>>> # Normal matching.
>>> regex.search(r'Mr|Mrs', 'Mrs')
<regex.Match object; span=(0, 2), match='Mr'>
>>> regex.search(r'one(self)?(selfsufficient)?', 'oneselfsufficient')
<regex.Match object; span=(0, 7), match='oneself'>
>>> # POSIX matching.
>>> regex.search(r'(?p)Mr|Mrs', 'Mrs')
<regex.Match object; span=(0, 3), match='Mrs'>
>>> regex.search(r'(?p)one(self)?(selfsufficient)?', 'oneselfsufficient')
<regex.Match object; span=(0, 17), match='oneselfsufficient'>

Note that it will take longer to find matches because when it finds a match at a certain position, it won’t return that immediately, but will keep looking to see if there’s another longer match there.

Added (?(DEFINE)...) (Hg issue 152)

If there’s no group called “DEFINE”, then … will be ignored except that any groups defined within it can be called and that the normal rules for numbering groups still apply.

>>> regex.search(r'(?(DEFINE)(?P<quant>\d+)(?P<item>\w+))(?&quant) (?&item)', '5 elephants')
<regex.Match object; span=(0, 11), match='5 elephants'>

Added (*PRUNE), (*SKIP) and (*FAIL) (Hg issue 153)

(*PRUNE) discards the backtracking info up to that point. When used in an atomic group or a lookaround, it won’t affect the enclosing pattern.

(*SKIP) is similar to (*PRUNE), except that it also sets where in the text the next attempt to match will start. When used in an atomic group or a lookaround, it won’t affect the enclosing pattern.

(*FAIL) causes immediate backtracking. (*F) is a permitted abbreviation.

Added \K (Hg issue 151)

Keeps the part of the entire match after the position where \K occurred; the part before it is discarded.

It does not affect what groups return.

>>> m = regex.search(r'(\w\w\K\w\w\w)', 'abcdef')
>>> m[0]
'cde'
>>> m[1]
'abcde'
>>>
>>> m = regex.search(r'(?r)(\w\w\K\w\w\w)', 'abcdef')
>>> m[0]
'bc'
>>> m[1]
'bcdef'

Added capture subscripting for expandf and subf/subfn (Hg issue 133)

You can use subscripting to get the captures of a repeated group.

>>> m = regex.match(r"(\w)+", "abc")
>>> m.expandf("{1}")
'c'
>>> m.expandf("{1[0]} {1[1]} {1[2]}")
'a b c'
>>> m.expandf("{1[-1]} {1[-2]} {1[-3]}")
'c b a'
>>>
>>> m = regex.match(r"(?P<letter>\w)+", "abc")
>>> m.expandf("{letter}")
'c'
>>> m.expandf("{letter[0]} {letter[1]} {letter[2]}")
'a b c'
>>> m.expandf("{letter[-1]} {letter[-2]} {letter[-3]}")
'c b a'

Added support for referring to a group by number using (?P=...)

This is in addition to the existing \g<...>.

Fixed the handling of locale-sensitive regexes

The LOCALE flag is intended for legacy code and has limited support. You’re still recommended to use Unicode instead.

Added partial matches (Hg issue 102)

A partial match is one that matches up to the end of string, but that string has been truncated and you want to know whether a complete match could be possible if the string had not been truncated.

Partial matches are supported by match, search, fullmatch and finditer with the partial keyword argument.

Match objects have a partial attribute, which is True if it’s a partial match.

For example, if you wanted a user to enter a 4-digit number and check it character by character as it was being entered:

>>> pattern = regex.compile(r'\d{4}')

>>> # Initially, nothing has been entered:
>>> print(pattern.fullmatch('', partial=True))
<regex.Match object; span=(0, 0), match='', partial=True>

>>> # An empty string is OK, but it's only a partial match.
>>> # The user enters a letter:
>>> print(pattern.fullmatch('a', partial=True))
None
>>> # It'll never match.

>>> # The user deletes that and enters a digit:
>>> print(pattern.fullmatch('1', partial=True))
<regex.Match object; span=(0, 1), match='1', partial=True>
>>> # It matches this far, but it's only a partial match.

>>> # The user enters 2 more digits:
>>> print(pattern.fullmatch('123', partial=True))
<regex.Match object; span=(0, 3), match='123', partial=True>
>>> # It matches this far, but it's only a partial match.

>>> # The user enters another digit:
>>> print(pattern.fullmatch('1234', partial=True))
<regex.Match object; span=(0, 4), match='1234'>
>>> # It's a complete match.

>>> # If the user enters another digit:
>>> print(pattern.fullmatch('12345', partial=True))
None
>>> # It's no longer a match.

>>> # This is a partial match:
>>> pattern.match('123', partial=True).partial
True

>>> # This is a complete match:
>>> pattern.match('1233', partial=True).partial
False

* operator not working correctly with sub() (Hg issue 106)

Sometimes it’s not clear how zero-width matches should be handled. For example, should .* match 0 characters directly after matching >0 characters?

>>> regex.sub('.*', 'x', 'test')
'xx'
>>> regex.sub('.*?', '|', 'test')
'|||||||||'

Added capturesdict (Hg issue 86)

capturesdict is a combination of groupdict and captures:

groupdict returns a dict of the named groups and the last capture of those groups.

captures returns a list of all the captures of a group

capturesdict returns a dict of the named groups and lists of all the captures of those groups.

>>> m = regex.match(r"(?:(?P<word>\w+) (?P<digits>\d+)\n)+", "one 1\ntwo 2\nthree 3\n")
>>> m.groupdict()
{'word': 'three', 'digits': '3'}
>>> m.captures("word")
['one', 'two', 'three']
>>> m.captures("digits")
['1', '2', '3']
>>> m.capturesdict()
{'word': ['one', 'two', 'three'], 'digits': ['1', '2', '3']}

Added allcaptures and allspans (Git issue 474)

allcaptures returns a list of all the captures of all the groups.

allspans returns a list of all the spans of the all captures of all the groups.

>>> m = regex.match(r"(?:(?P<word>\w+) (?P<digits>\d+)\n)+", "one 1\ntwo 2\nthree 3\n")
>>> m.allcaptures()
(['one 1\ntwo 2\nthree 3\n'], ['one', 'two', 'three'], ['1', '2', '3'])
>>> m.allspans()
([(0, 20)], [(0, 3), (6, 9), (12, 17)], [(4, 5), (10, 11), (18, 19)])

Allow duplicate names of groups (Hg issue 87)

Group names can be duplicated.

>>> # With optional groups:
>>>
>>> # Both groups capture, the second capture 'overwriting' the first.
>>> m = regex.match(r"(?P<item>\w+)? or (?P<item>\w+)?", "first or second")
>>> m.group("item")
'second'
>>> m.captures("item")
['first', 'second']
>>> # Only the second group captures.
>>> m = regex.match(r"(?P<item>\w+)? or (?P<item>\w+)?", " or second")
>>> m.group("item")
'second'
>>> m.captures("item")
['second']
>>> # Only the first group captures.
>>> m = regex.match(r"(?P<item>\w+)? or (?P<item>\w+)?", "first or ")
>>> m.group("item")
'first'
>>> m.captures("item")
['first']
>>>
>>> # With mandatory groups:
>>>
>>> # Both groups capture, the second capture 'overwriting' the first.
>>> m = regex.match(r"(?P<item>\w*) or (?P<item>\w*)?", "first or second")
>>> m.group("item")
'second'
>>> m.captures("item")
['first', 'second']
>>> # Again, both groups capture, the second capture 'overwriting' the first.
>>> m = regex.match(r"(?P<item>\w*) or (?P<item>\w*)", " or second")
>>> m.group("item")
'second'
>>> m.captures("item")
['', 'second']
>>> # And yet again, both groups capture, the second capture 'overwriting' the first.
>>> m = regex.match(r"(?P<item>\w*) or (?P<item>\w*)", "first or ")
>>> m.group("item")
''
>>> m.captures("item")
['first', '']

Added fullmatch (issue #16203)

fullmatch behaves like match, except that it must match all of the string.

>>> print(regex.fullmatch(r"abc", "abc").span())
(0, 3)
>>> print(regex.fullmatch(r"abc", "abcx"))
None
>>> print(regex.fullmatch(r"abc", "abcx", endpos=3).span())
(0, 3)
>>> print(regex.fullmatch(r"abc", "xabcy", pos=1, endpos=4).span())
(1, 4)
>>>
>>> regex.match(r"a.*?", "abcd").group(0)
'a'
>>> regex.fullmatch(r"a.*?", "abcd").group(0)
'abcd'

Added subf and subfn

subf and subfn are alternatives to sub and subn respectively. When passed a replacement string, they treat it as a format string.

>>> regex.subf(r"(\w+) (\w+)", "{0} => {2} {1}", "foo bar")
'foo bar => bar foo'
>>> regex.subf(r"(?P<word1>\w+) (?P<word2>\w+)", "{word2} {word1}", "foo bar")
'bar foo'

Added expandf to match object

expandf is an alternative to expand. When passed a replacement string, it treats it as a format string.

>>> m = regex.match(r"(\w+) (\w+)", "foo bar")
>>> m.expandf("{0} => {2} {1}")
'foo bar => bar foo'
>>>
>>> m = regex.match(r"(?P<word1>\w+) (?P<word2>\w+)", "foo bar")
>>> m.expandf("{word2} {word1}")
'bar foo'

Detach searched string

A match object contains a reference to the string that was searched, via its string attribute. The detach_string method will ‘detach’ that string, making it available for garbage collection, which might save valuable memory if that string is very large.

>>> m = regex.search(r"\w+", "Hello world")
>>> print(m.group())
Hello
>>> print(m.string)
Hello world
>>> m.detach_string()
>>> print(m.group())
Hello
>>> print(m.string)
None

Recursive patterns (Hg issue 27)

Recursive and repeated patterns are supported.

(?R) or (?0) tries to match the entire regex recursively. (?1), (?2), etc, try to match the relevant group.

(?&name) tries to match the named group.

>>> regex.match(r"(Tarzan|Jane) loves (?1)", "Tarzan loves Jane").groups()
('Tarzan',)
>>> regex.match(r"(Tarzan|Jane) loves (?1)", "Jane loves Tarzan").groups()
('Jane',)

>>> m = regex.search(r"(\w)(?:(?R)|(\w?))\1", "kayak")
>>> m.group(0, 1, 2)
('kayak', 'k', None)

The first two examples show how the subpattern within the group is reused, but is _not_ itself a group. In other words, "(Tarzan|Jane) loves (?1)" is equivalent to "(Tarzan|Jane) loves (?:Tarzan|Jane)".

It’s possible to backtrack into a recursed or repeated group.

You can’t call a group if there is more than one group with that group name or group number ("ambiguous group reference").

The alternative forms (?P>name) and (?P&name) are also supported.

Full Unicode case-folding is supported

In version 1 behaviour, the regex module uses full case-folding when performing case-insensitive matches in Unicode.

>>> regex.match(r"(?iV1)strasse", "stra\N{LATIN SMALL LETTER SHARP S}e").span()
(0, 6)
>>> regex.match(r"(?iV1)stra\N{LATIN SMALL LETTER SHARP S}e", "STRASSE").span()
(0, 7)

In version 0 behaviour, it uses simple case-folding for backward compatibility with the re module.

Approximate “fuzzy” matching (Hg issue 12, Hg issue 41, Hg issue 109)

Regex usually attempts an exact match, but sometimes an approximate, or “fuzzy”, match is needed, for those cases where the text being searched may contain errors in the form of inserted, deleted or substituted characters.

A fuzzy regex specifies which types of errors are permitted, and, optionally, either the minimum and maximum or only the maximum permitted number of each type. (You cannot specify only a minimum.)

The 3 types of error are:

  • Insertion, indicated by “i”

  • Deletion, indicated by “d”

  • Substitution, indicated by “s”

In addition, “e” indicates any type of error.

The fuzziness of a regex item is specified between “{” and “}” after the item.

Examples:

  • foo match “foo” exactly

  • (?:foo){i} match “foo”, permitting insertions

  • (?:foo){d} match “foo”, permitting deletions

  • (?:foo){s} match “foo”, permitting substitutions

  • (?:foo){i,s} match “foo”, permitting insertions and substitutions

  • (?:foo){e} match “foo”, permitting errors

If a certain type of error is specified, then any type not specified will not be permitted.

In the following examples I’ll omit the item and write only the fuzziness:

  • {d<=3} permit at most 3 deletions, but no other types

  • {i<=1,s<=2} permit at most 1 insertion and at most 2 substitutions, but no deletions

  • {1<=e<=3} permit at least 1 and at most 3 errors

  • {i<=2,d<=2,e<=3} permit at most 2 insertions, at most 2 deletions, at most 3 errors in total, but no substitutions

It’s also possible to state the costs of each type of error and the maximum permitted total cost.

Examples:

  • {2i+2d+1s<=4} each insertion costs 2, each deletion costs 2, each substitution costs 1, the total cost must not exceed 4

  • {i<=1,d<=1,s<=1,2i+2d+1s<=4} at most 1 insertion, at most 1 deletion, at most 1 substitution; each insertion costs 2, each deletion costs 2, each substitution costs 1, the total cost must not exceed 4

You can also use “<” instead of “<=” if you want an exclusive minimum or maximum.

You can add a test to perform on a character that’s substituted or inserted.

Examples:

  • {s<=2:[a-z]} at most 2 substitutions, which must be in the character set [a-z].

  • {s<=2,i<=3:\d} at most 2 substitutions, at most 3 insertions, which must be digits.

By default, fuzzy matching searches for the first match that meets the given constraints. The ENHANCEMATCH flag will cause it to attempt to improve the fit (i.e. reduce the number of errors) of the match that it has found.

The BESTMATCH flag will make it search for the best match instead.

Further examples to note:

  • regex.search("(dog){e}", "cat and dog")[1] returns "cat" because that matches "dog" with 3 errors (an unlimited number of errors is permitted).

  • regex.search("(dog){e<=1}", "cat and dog")[1] returns " dog" (with a leading space) because that matches "dog" with 1 error, which is within the limit.

  • regex.search("(?e)(dog){e<=1}", "cat and dog")[1] returns "dog" (without a leading space) because the fuzzy search matches " dog" with 1 error, which is within the limit, and the (?e) then it attempts a better fit.

In the first two examples there are perfect matches later in the string, but in neither case is it the first possible match.

The match object has an attribute fuzzy_counts which gives the total number of substitutions, insertions and deletions.

>>> # A 'raw' fuzzy match:
>>> regex.fullmatch(r"(?:cats|cat){e<=1}", "cat").fuzzy_counts
(0, 0, 1)
>>> # 0 substitutions, 0 insertions, 1 deletion.

>>> # A better match might be possible if the ENHANCEMATCH flag used:
>>> regex.fullmatch(r"(?e)(?:cats|cat){e<=1}", "cat").fuzzy_counts
(0, 0, 0)
>>> # 0 substitutions, 0 insertions, 0 deletions.

The match object also has an attribute fuzzy_changes which gives a tuple of the positions of the substitutions, insertions and deletions.

>>> m = regex.search('(fuu){i<=2,d<=2,e<=5}', 'anaconda foo bar')
>>> m
<regex.Match object; span=(7, 10), match='a f', fuzzy_counts=(0, 2, 2)>
>>> m.fuzzy_changes
([], [7, 8], [10, 11])

What this means is that if the matched part of the string had been:

'anacondfuuoo bar'

it would’ve been an exact match.

However, there were insertions at positions 7 and 8:

'anaconda fuuoo bar'
        ^^

and deletions at positions 10 and 11:

'anaconda f~~oo bar'
           ^^

So the actual string was:

'anaconda foo bar'

Named lists \L<name> (Hg issue 11)

There are occasions where you may want to include a list (actually, a set) of options in a regex.

One way is to build the pattern like this:

>>> p = regex.compile(r"first|second|third|fourth|fifth")

but if the list is large, parsing the resulting regex can take considerable time, and care must also be taken that the strings are properly escaped and properly ordered, for example, “cats” before “cat”.

The new alternative is to use a named list:

>>> option_set = ["first", "second", "third", "fourth", "fifth"]
>>> p = regex.compile(r"\L<options>", options=option_set)

The order of the items is irrelevant, they are treated as a set. The named lists are available as the .named_lists attribute of the pattern object :

>>> print(p.named_lists)
{'options': frozenset({'third', 'first', 'fifth', 'fourth', 'second'})}

If there are any unused keyword arguments, ValueError will be raised unless you tell it otherwise:

>>> option_set = ["first", "second", "third", "fourth", "fifth"]
>>> p = regex.compile(r"\L<options>", options=option_set, other_options=[])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python310\lib\site-packages\regex\regex.py", line 353, in compile
    return _compile(pattern, flags, ignore_unused, kwargs, cache_pattern)
  File "C:\Python310\lib\site-packages\regex\regex.py", line 500, in _compile
    complain_unused_args()
  File "C:\Python310\lib\site-packages\regex\regex.py", line 483, in complain_unused_args
    raise ValueError('unused keyword argument {!a}'.format(any_one))
ValueError: unused keyword argument 'other_options'
>>> p = regex.compile(r"\L<options>", options=option_set, other_options=[], ignore_unused=True)
>>> p = regex.compile(r"\L<options>", options=option_set, other_options=[], ignore_unused=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python310\lib\site-packages\regex\regex.py", line 353, in compile
    return _compile(pattern, flags, ignore_unused, kwargs, cache_pattern)
  File "C:\Python310\lib\site-packages\regex\regex.py", line 500, in _compile
    complain_unused_args()
  File "C:\Python310\lib\site-packages\regex\regex.py", line 483, in complain_unused_args
    raise ValueError('unused keyword argument {!a}'.format(any_one))
ValueError: unused keyword argument 'other_options'
>>>

Start and end of word

\m matches at the start of a word.

\M matches at the end of a word.

Compare with \b, which matches at the start or end of a word.

Unicode line separators

Normally the only line separator is \n (\x0A), but if the WORD flag is turned on then the line separators are \x0D\x0A, \x0A, \x0B, \x0C and \x0D, plus \x85, \u2028 and \u2029 when working with Unicode.

This affects the regex dot ".", which, with the DOTALL flag turned off, matches any character except a line separator. It also affects the line anchors ^ and $ (in multiline mode).

Set operators

Version 1 behaviour only

Set operators have been added, and a set [...] can include nested sets.

The operators, in order of increasing precedence, are:

  • || for union (“x||y” means “x or y”)

  • ~~ (double tilde) for symmetric difference (“x~~y” means “x or y, but not both”)

  • && for intersection (“x&&y” means “x and y”)

  • -- (double dash) for difference (“x–y” means “x but not y”)

Implicit union, ie, simple juxtaposition like in [ab], has the highest precedence. Thus, [ab&&cd] is the same as [[a||b]&&[c||d]].

Examples:

  • [ab] # Set containing ‘a’ and ‘b’

  • [a-z] # Set containing ‘a’ .. ‘z’

  • [[a-z]--[qw]] # Set containing ‘a’ .. ‘z’, but not ‘q’ or ‘w’

  • [a-z--qw] # Same as above

  • [\p{L}--QW] # Set containing all letters except ‘Q’ and ‘W’

  • [\p{N}--[0-9]] # Set containing all numbers except ‘0’ .. ‘9’

  • [\p{ASCII}&&\p{Letter}] # Set containing all characters which are ASCII and letter

regex.escape (issue #2650)

regex.escape has an additional keyword parameter special_only. When True, only ‘special’ regex characters, such as ‘?’, are escaped.

>>> regex.escape("foo!?", special_only=False)
'foo\\!\\?'
>>> regex.escape("foo!?", special_only=True)
'foo!\\?'

regex.escape (Hg issue 249)

regex.escape has an additional keyword parameter literal_spaces. When True, spaces are not escaped.

>>> regex.escape("foo bar!?", literal_spaces=False)
'foo\\ bar!\\?'
>>> regex.escape("foo bar!?", literal_spaces=True)
'foo bar!\\?'

Repeated captures (issue #7132)

A match object has additional methods which return information on all the successful matches of a repeated group. These methods are:

  • matchobject.captures([group1, ...])

    • Returns a list of the strings matched in a group or groups. Compare with matchobject.group([group1, ...]).

  • matchobject.starts([group])

    • Returns a list of the start positions. Compare with matchobject.start([group]).

  • matchobject.ends([group])

    • Returns a list of the end positions. Compare with matchobject.end([group]).

  • matchobject.spans([group])

    • Returns a list of the spans. Compare with matchobject.span([group]).

>>> m = regex.search(r"(\w{3})+", "123456789")
>>> m.group(1)
'789'
>>> m.captures(1)
['123', '456', '789']
>>> m.start(1)
6
>>> m.starts(1)
[0, 3, 6]
>>> m.end(1)
9
>>> m.ends(1)
[3, 6, 9]
>>> m.span(1)
(6, 9)
>>> m.spans(1)
[(0, 3), (3, 6), (6, 9)]

Atomic grouping (?>...) (issue #433030)

If the following pattern subsequently fails, then the subpattern as a whole will fail.

Possessive quantifiers

(?:...)?+ ; (?:...)*+ ; (?:...)++ ; (?:...){min,max}+

The subpattern is matched up to ‘max’ times. If the following pattern subsequently fails, then all the repeated subpatterns will fail as a whole. For example, (?:...)++ is equivalent to (?>(?:...)+).

Scoped flags (issue #433028)

(?flags-flags:...)

The flags will apply only to the subpattern. Flags can be turned on or off.

Definition of ‘word’ character (issue #1693050)

The definition of a ‘word’ character has been expanded for Unicode. It conforms to the Unicode specification at http://www.unicode.org/reports/tr29/.

Variable-length lookbehind

A lookbehind can match a variable-length string.

Flags argument for regex.split, regex.sub and regex.subn (issue #3482)

regex.split, regex.sub and regex.subn support a ‘flags’ argument.

Pos and endpos arguments for regex.sub and regex.subn

regex.sub and regex.subn support ‘pos’ and ‘endpos’ arguments.

‘Overlapped’ argument for regex.findall and regex.finditer

regex.findall and regex.finditer support an ‘overlapped’ flag which permits overlapped matches.

Splititer

regex.splititer has been added. It’s a generator equivalent of regex.split.

Subscripting match objects for groups

A match object accepts access to the groups via subscripting and slicing:

>>> m = regex.search(r"(?P<before>.*?)(?P<num>\d+)(?P<after>.*)", "pqr123stu")
>>> print(m["before"])
pqr
>>> print(len(m))
4
>>> print(m[:])
('pqr123stu', 'pqr', '123', 'stu')

Named groups

Groups can be named with (?<name>...) as well as the existing (?P<name>...).

Group references

Groups can be referenced within a pattern with \g<name>. This also allows there to be more than 99 groups.

Named characters \N{name}

Named characters are supported. Note that only those known by Python’s Unicode database will be recognised.

Unicode codepoint properties, including scripts and blocks

\p{property=value}; \P{property=value}; \p{value} ; \P{value}

Many Unicode properties are supported, including blocks and scripts. \p{property=value} or \p{property:value} matches a character whose property property has value value. The inverse of \p{property=value} is \P{property=value} or \p{^property=value}.

If the short form \p{value} is used, the properties are checked in the order: General_Category, Script, Block, binary property:

  • Latin, the ‘Latin’ script (Script=Latin).

  • BasicLatin, the ‘BasicLatin’ block (Block=BasicLatin).

  • Alphabetic, the ‘Alphabetic’ binary property (Alphabetic=Yes).

A short form starting with Is indicates a script or binary property:

  • IsLatin, the ‘Latin’ script (Script=Latin).

  • IsAlphabetic, the ‘Alphabetic’ binary property (Alphabetic=Yes).

A short form starting with In indicates a block property:

  • InBasicLatin, the ‘BasicLatin’ block (Block=BasicLatin).

POSIX character classes

[[:alpha:]]; [[:^alpha:]]

POSIX character classes are supported. These are normally treated as an alternative form of \p{...}.

The exceptions are alnum, digit, punct and xdigit, whose definitions are different from those of Unicode.

[[:alnum:]] is equivalent to \p{posix_alnum}.

[[:digit:]] is equivalent to \p{posix_digit}.

[[:punct:]] is equivalent to \p{posix_punct}.

[[:xdigit:]] is equivalent to \p{posix_xdigit}.

Search anchor \G

A search anchor has been added. It matches at the position where each search started/continued and can be used for contiguous matches or in negative variable-length lookbehinds to limit how far back the lookbehind goes:

>>> regex.findall(r"\w{2}", "abcd ef")
['ab', 'cd', 'ef']
>>> regex.findall(r"\G\w{2}", "abcd ef")
['ab', 'cd']
  • The search starts at position 0 and matches ‘ab’.

  • The search continues at position 2 and matches ‘cd’.

  • The search continues at position 4 and fails to match any letters.

  • The anchor stops the search start position from being advanced, so there are no more results.

Reverse searching

Searches can also work backwards:

>>> regex.findall(r".", "abc")
['a', 'b', 'c']
>>> regex.findall(r"(?r).", "abc")
['c', 'b', 'a']

Note that the result of a reverse search is not necessarily the reverse of a forward search:

>>> regex.findall(r"..", "abcde")
['ab', 'cd']
>>> regex.findall(r"(?r)..", "abcde")
['de', 'bc']

Matching a single grapheme \X

The grapheme matcher is supported. It conforms to the Unicode specification at http://www.unicode.org/reports/tr29/.

Branch reset (?|...|...)

Group numbers will be reused across the alternatives, but groups with different names will have different group numbers.

>>> regex.match(r"(?|(first)|(second))", "first").groups()
('first',)
>>> regex.match(r"(?|(first)|(second))", "second").groups()
('second',)

Note that there is only one group.

Default Unicode word boundary

The WORD flag changes the definition of a ‘word boundary’ to that of a default Unicode word boundary. This applies to \b and \B.

Timeout

The matching methods and functions support timeouts. The timeout (in seconds) applies to the entire operation:

>>> from time import sleep
>>>
>>> def fast_replace(m):
...     return 'X'
...
>>> def slow_replace(m):
...     sleep(0.5)
...     return 'X'
...
>>> regex.sub(r'[a-z]', fast_replace, 'abcde', timeout=2)
'XXXXX'
>>> regex.sub(r'[a-z]', slow_replace, 'abcde', timeout=2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python310\lib\site-packages\regex\regex.py", line 278, in sub
    return pat.sub(repl, string, count, pos, endpos, concurrent, timeout)
TimeoutError: regex timed out

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

regex-2025.7.34.tar.gz (400.7 kB view details)

Uploaded Source

Built Distributions

regex-2025.7.34-cp314-cp314-win_arm64.whl (271.8 kB view details)

Uploaded CPython 3.14Windows ARM64

regex-2025.7.34-cp314-cp314-win_amd64.whl (278.6 kB view details)

Uploaded CPython 3.14Windows x86-64

regex-2025.7.34-cp314-cp314-win32.whl (269.7 kB view details)

Uploaded CPython 3.14Windows x86

regex-2025.7.34-cp314-cp314-musllinux_1_2_x86_64.whl (787.9 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

regex-2025.7.34-cp314-cp314-musllinux_1_2_s390x.whl (848.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ s390x

regex-2025.7.34-cp314-cp314-musllinux_1_2_ppc64le.whl (857.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ppc64le

regex-2025.7.34-cp314-cp314-musllinux_1_2_aarch64.whl (786.7 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

regex-2025.7.34-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

regex-2025.7.34-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (910.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

regex-2025.7.34-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (863.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

regex-2025.7.34-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (797.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

regex-2025.7.34-cp314-cp314-macosx_11_0_arm64.whl (286.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

regex-2025.7.34-cp314-cp314-macosx_10_13_x86_64.whl (289.8 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

regex-2025.7.34-cp314-cp314-macosx_10_13_universal2.whl (485.4 kB view details)

Uploaded CPython 3.14macOS 10.13+ universal2 (ARM64, x86-64)

regex-2025.7.34-cp313-cp313-win_arm64.whl (268.5 kB view details)

Uploaded CPython 3.13Windows ARM64

regex-2025.7.34-cp313-cp313-win_amd64.whl (275.4 kB view details)

Uploaded CPython 3.13Windows x86-64

regex-2025.7.34-cp313-cp313-win32.whl (264.4 kB view details)

Uploaded CPython 3.13Windows x86

regex-2025.7.34-cp313-cp313-musllinux_1_2_x86_64.whl (788.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

regex-2025.7.34-cp313-cp313-musllinux_1_2_s390x.whl (849.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ s390x

regex-2025.7.34-cp313-cp313-musllinux_1_2_ppc64le.whl (856.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ppc64le

regex-2025.7.34-cp313-cp313-musllinux_1_2_aarch64.whl (786.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

regex-2025.7.34-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

regex-2025.7.34-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (910.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

regex-2025.7.34-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (862.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

regex-2025.7.34-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (797.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

regex-2025.7.34-cp313-cp313-macosx_11_0_arm64.whl (286.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

regex-2025.7.34-cp313-cp313-macosx_10_13_x86_64.whl (289.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

regex-2025.7.34-cp313-cp313-macosx_10_13_universal2.whl (485.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

regex-2025.7.34-cp312-cp312-win_arm64.whl (268.5 kB view details)

Uploaded CPython 3.12Windows ARM64

regex-2025.7.34-cp312-cp312-win_amd64.whl (275.4 kB view details)

Uploaded CPython 3.12Windows x86-64

regex-2025.7.34-cp312-cp312-win32.whl (264.4 kB view details)

Uploaded CPython 3.12Windows x86

regex-2025.7.34-cp312-cp312-musllinux_1_2_x86_64.whl (788.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

regex-2025.7.34-cp312-cp312-musllinux_1_2_s390x.whl (848.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ s390x

regex-2025.7.34-cp312-cp312-musllinux_1_2_ppc64le.whl (856.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ppc64le

regex-2025.7.34-cp312-cp312-musllinux_1_2_aarch64.whl (786.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

regex-2025.7.34-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

regex-2025.7.34-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (910.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

regex-2025.7.34-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (862.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

regex-2025.7.34-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (797.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

regex-2025.7.34-cp312-cp312-macosx_11_0_arm64.whl (286.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

regex-2025.7.34-cp312-cp312-macosx_10_13_x86_64.whl (290.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

regex-2025.7.34-cp312-cp312-macosx_10_13_universal2.whl (485.5 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

regex-2025.7.34-cp311-cp311-win_arm64.whl (268.4 kB view details)

Uploaded CPython 3.11Windows ARM64

regex-2025.7.34-cp311-cp311-win_amd64.whl (276.0 kB view details)

Uploaded CPython 3.11Windows x86-64

regex-2025.7.34-cp311-cp311-win32.whl (264.0 kB view details)

Uploaded CPython 3.11Windows x86

regex-2025.7.34-cp311-cp311-musllinux_1_2_x86_64.whl (787.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

regex-2025.7.34-cp311-cp311-musllinux_1_2_s390x.whl (844.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ s390x

regex-2025.7.34-cp311-cp311-musllinux_1_2_ppc64le.whl (852.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ppc64le

regex-2025.7.34-cp311-cp311-musllinux_1_2_aarch64.whl (781.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

regex-2025.7.34-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (798.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

regex-2025.7.34-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (905.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

regex-2025.7.34-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (858.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

regex-2025.7.34-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (792.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

regex-2025.7.34-cp311-cp311-macosx_11_0_arm64.whl (285.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

regex-2025.7.34-cp311-cp311-macosx_10_9_x86_64.whl (289.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

regex-2025.7.34-cp311-cp311-macosx_10_9_universal2.whl (484.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

regex-2025.7.34-cp310-cp310-win_arm64.whl (268.4 kB view details)

Uploaded CPython 3.10Windows ARM64

regex-2025.7.34-cp310-cp310-win_amd64.whl (276.0 kB view details)

Uploaded CPython 3.10Windows x86-64

regex-2025.7.34-cp310-cp310-win32.whl (264.0 kB view details)

Uploaded CPython 3.10Windows x86

regex-2025.7.34-cp310-cp310-musllinux_1_2_x86_64.whl (778.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

regex-2025.7.34-cp310-cp310-musllinux_1_2_s390x.whl (834.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ s390x

regex-2025.7.34-cp310-cp310-musllinux_1_2_ppc64le.whl (844.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ppc64le

regex-2025.7.34-cp310-cp310-musllinux_1_2_aarch64.whl (773.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

regex-2025.7.34-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (780.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

regex-2025.7.34-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (789.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

regex-2025.7.34-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (897.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

regex-2025.7.34-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (849.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

regex-2025.7.34-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (780.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

regex-2025.7.34-cp310-cp310-macosx_11_0_arm64.whl (285.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

regex-2025.7.34-cp310-cp310-macosx_10_9_x86_64.whl (289.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

regex-2025.7.34-cp310-cp310-macosx_10_9_universal2.whl (484.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

regex-2025.7.34-cp39-cp39-win_arm64.whl (268.4 kB view details)

Uploaded CPython 3.9Windows ARM64

regex-2025.7.34-cp39-cp39-win_amd64.whl (276.1 kB view details)

Uploaded CPython 3.9Windows x86-64

regex-2025.7.34-cp39-cp39-win32.whl (264.0 kB view details)

Uploaded CPython 3.9Windows x86

regex-2025.7.34-cp39-cp39-musllinux_1_2_x86_64.whl (777.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

regex-2025.7.34-cp39-cp39-musllinux_1_2_s390x.whl (834.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ s390x

regex-2025.7.34-cp39-cp39-musllinux_1_2_ppc64le.whl (843.4 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ppc64le

regex-2025.7.34-cp39-cp39-musllinux_1_2_aarch64.whl (773.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

regex-2025.7.34-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (780.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

regex-2025.7.34-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (789.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

regex-2025.7.34-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (896.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

regex-2025.7.34-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (848.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64lemanylinux: glibc 2.28+ ppc64le

regex-2025.7.34-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (779.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

regex-2025.7.34-cp39-cp39-macosx_11_0_arm64.whl (285.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

regex-2025.7.34-cp39-cp39-macosx_10_9_x86_64.whl (289.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

regex-2025.7.34-cp39-cp39-macosx_10_9_universal2.whl (484.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file regex-2025.7.34.tar.gz.

File metadata

  • Download URL: regex-2025.7.34.tar.gz
  • Upload date:
  • Size: 400.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34.tar.gz
Algorithm Hash digest
SHA256 9ead9765217afd04a86822dfcd4ed2747dfe426e887da413b15ff0ac2457e21a
MD5 f6e8863535579292a6281e7521fc252d
BLAKE2b-256 0bdee13fa6dc61d78b30ba47481f99933a3b49a57779d625c392d8036770a60d

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 271.8 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 4b8c4d39f451e64809912c82392933d80fe2e4a87eeef8859fcc5380d0173c64
MD5 1e0ea4a5c700d24231862141cbfcb064
BLAKE2b-256 d178a815529b559b1771080faa90c3ab401730661f99d495ab0071649f139ebd

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 278.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4b7dc33b9b48fb37ead12ffc7bdb846ac72f99a80373c4da48f64b373a7abeae
MD5 e3503a894a6b5f4d70184198f3c5f466
BLAKE2b-256 7452a7e92d02fa1fdef59d113098cb9f02c5d03289a0e9f9e5d4d6acccd10677

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-win32.whl.

File metadata

  • Download URL: regex-2025.7.34-cp314-cp314-win32.whl
  • Upload date:
  • Size: 269.7 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 f978ddfb6216028c8f1d6b0f7ef779949498b64117fc35a939022f67f810bdcb
MD5 913700f8379539bb7868efbe60141ed0
BLAKE2b-256 be6cd51204e28e7bc54f9a03bb799b04730d7e54ff2718862b8d4e09e7110a6a

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e91eb2c62c39705e17b4d42d4b86c4e86c884c0d15d9c5a47d0835f8387add8e
MD5 a0e2845c32f56414cd6c686f3305da5f
BLAKE2b-256 0d219ac6e07a4c5e8646a90b56b61f7e9dac11ae0747c857f91d3d2bc7c241d9

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 656433e5b7dccc9bc0da6312da8eb897b81f5e560321ec413500e5367fcd5d47
MD5 daecadb0e00658d014f2abd0a0a132a6
BLAKE2b-256 b1b2a4dc5d8b14f90924f27f0ac4c4c4f5e195b723be98adecc884f6716614b6

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 aaef1f056d96a0a5d53ad47d019d5b4c66fe4be2da87016e0d43b7242599ffc7
MD5 88b14b6f0cca9ff53700ed1edbf68a84
BLAKE2b-256 1275c3ebb30e04a56c046f5c85179dc173818551037daae2c0c940c7b19152cb

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4f42b522259c66e918a0121a12429b2abcf696c6f967fa37bdc7b72e61469f98
MD5 82c3fce8d23ac352bdb166a62cf87897
BLAKE2b-256 5a0d80d4e66ed24f1ba876a9e8e31b709f9fd22d5c266bf5f3ab3c1afe683d7d

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4494f8fd95a77eb434039ad8460e64d57baa0434f1395b7da44015bef650d0e4
MD5 a315c9a66ab8433702e26a92e405a117
BLAKE2b-256 9efe14176f2182125977fba3711adea73f472a11f3f9288c1317c59cd16ad5e6

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 d72765a4bff8c43711d5b0f5b452991a9947853dfa471972169b3cc0ba1d0751
MD5 a758a0229358b1b25237a08543eeea10
BLAKE2b-256 68e53ff66b29dde12f5b874dda2d9dec7245c2051f2528d8c2a797901497f140

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 98d0ce170fcde1a03b5df19c5650db22ab58af375aaa6ff07978a85c9f250f0e
MD5 6352a7190320948b3aa04f5bb35264ed
BLAKE2b-256 86383e3dc953d13998fa047e9a2414b556201dbd7147034fbac129392363253b

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 69c593ff5a24c0d5c1112b0df9b09eae42b33c014bdca7022d6523b210b69f72
MD5 a95ae98abe298282d8621a1fdbe2f9de
BLAKE2b-256 27df5b505dc447eb71278eba10d5ec940769ca89c1af70f0468bfbcb98035dc2

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a16dd56bbcb7d10e62861c3cd000290ddff28ea142ffb5eb3470f183628011ac
MD5 add41214ba32ef39dee733777de37eb2
BLAKE2b-256 92715862ac9913746e5054d01cb9fb8125b3d0802c0706ef547cae1e7f4428fa

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6c053f9647e3421dd2f5dff8172eb7b4eec129df9d1d2f7133a4386319b47435
MD5 d67be7436ff6cd73897d712bbd1d5960
BLAKE2b-256 735b6d4d3a0b4d312adbfd6d5694c8dddcf1396708976dd87e4d00af439d962b

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp314-cp314-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp314-cp314-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 8283afe7042d8270cecf27cca558873168e771183d4d593e3c5fe5f12402212a
MD5 64e67e6b7951397977e70172ea0d2808
BLAKE2b-256 ac236376f3a23cf2f3c00514b1cdd8c990afb4dfbac3cb4a68b633c6b7e2e307

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 268.5 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 7bf1c5503a9f2cbd2f52d7e260acb3131b07b6273c470abb78568174fe6bde3f
MD5 c91ace4760dda488c92a4b1a36414306
BLAKE2b-256 65cdf94383666704170a2154a5df7b16be28f0c27a266bffcd843e58bc84120f

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 275.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9d644de5520441e5f7e2db63aec2748948cc39ed4d7a87fd5db578ea4043d997
MD5 469c737bae96d42dc5b48c0bc125c120
BLAKE2b-256 befa917d64dd074682606a003cba33585c28138c77d848ef72fc77cbb1183849

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-win32.whl.

File metadata

  • Download URL: regex-2025.7.34-cp313-cp313-win32.whl
  • Upload date:
  • Size: 264.4 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 da7507d083ee33ccea1310447410c27ca11fb9ef18c95899ca57ff60a7e4d8f1
MD5 029b761642d729e44e3f132febed6eaa
BLAKE2b-256 47802f46677c0b3c2b723b2c358d19f9346e714113865da0f5f736ca1a883bde

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 469142fb94a869beb25b5f18ea87646d21def10fbacb0bcb749224f3509476f0
MD5 c396193e57e8b7e6c8d4aede756d5d70
BLAKE2b-256 9eb83c35da3b12c87e3cc00010ef6c3a4ae787cff0bc381aa3d251def219969a

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 f3f6e8e7af516a7549412ce57613e859c3be27d55341a894aacaa11703a4c31a
MD5 089a48e5a0c9ef562a2b9943d1e28e8e
BLAKE2b-256 d730c19d212b619963c5b460bfed0ea69a092c6a43cba52a973d46c27b3e2975

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 dde35e2afbbe2272f8abee3b9fe6772d9b5a07d82607b5788e8508974059925c
MD5 dc9f02d1e1d9e4fc8252e3c67c0dd237
BLAKE2b-256 1029758bf83cf7b4c34f07ac3423ea03cee3eb3176941641e4ccc05620f6c0b8

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c1844be23cd40135b3a5a4dd298e1e0c0cb36757364dd6cdc6025770363e06c1
MD5 5a81d01b5de51e19c410ed60320f88fc
BLAKE2b-256 405dcff8896d27e4e3dd11dd72ac78797c7987eb50fe4debc2c0f2f1682eb06d

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d5273fddf7a3e602695c92716c420c377599ed3c853ea669c1fe26218867002f
MD5 d111994173abddf2bfd8efd764f5ce0f
BLAKE2b-256 eef64716198dbd0bcc9c45625ac4c81a435d1c4d8ad662e8576dac06bab35b17

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 72a26dcc6a59c057b292f39d41465d8233a10fd69121fa24f8f43ec6294e5415
MD5 dd73b4fc3d40cec2b02f8a73bd7c04f9
BLAKE2b-256 9038899105dd27fed394e3fae45607c1983e138273ec167e47882fc401f112b9

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 1e4f4f62599b8142362f164ce776f19d79bdd21273e86920a7b604a4275b4f59
MD5 3c9877ee5c74fa416309408e5c615ad4
BLAKE2b-256 62cf2fcdca1110495458ba4e95c52ce73b361cf1cafd8a53b5c31542cde9a15b

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6164b1d99dee1dfad33f301f174d8139d4368a9fb50bf0a3603b2eaf579963ad
MD5 777eb9bab09220c56665995c40a2344e
BLAKE2b-256 be2f99dc8f6f756606f0c214d14c7b6c17270b6bbe26d5c1f05cde9dbb1c551f

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d03c6f9dcd562c56527c42b8530aad93193e0b3254a588be1f2ed378cdfdea1b
MD5 17bd3a8a1236dd0f0aa15ac41bf1ce78
BLAKE2b-256 369108fc0fd0f40bdfb0e0df4134ee37cfb16e66a1044ac56d36911fd01c69d2

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 69ed3bc611540f2ea70a4080f853741ec698be556b1df404599f8724690edbcd
MD5 9576e04d5e8a02529f133a458c9c942f
BLAKE2b-256 94a6c09136046be0595f0331bc58a0e5f89c2d324cf734e0b0ec53cf4b12a636

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 c3c9740a77aeef3f5e3aaab92403946a8d34437db930a0280e7e81ddcada61f5
MD5 f01428e4fecf67a3bcf5ec0c6e108467
BLAKE2b-256 1516b709b2119975035169a25aa8e4940ca177b1a2e25e14f8d996d09130368e

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 268.5 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 c83aec91af9c6fbf7c743274fd952272403ad9a9db05fe9bfc9df8d12b45f176
MD5 e493dd60ca231250da5508aedeb5b2b4
BLAKE2b-256 f73cc61d2fdcecb754a40475a3d1ef9a000911d3e3fc75c096acf44b0dfb786a

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 275.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9a9ab52a466a9b4b91564437b36417b76033e8778e5af8f36be835d8cb370d62
MD5 f6f789ec32325ac83490229405ab0cdf
BLAKE2b-256 3b39bd922b55a4fc5ad5c13753274e5b536f5b06ec8eb9747675668491c7ab7a

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-win32.whl.

File metadata

  • Download URL: regex-2025.7.34-cp312-cp312-win32.whl
  • Upload date:
  • Size: 264.4 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 d600e58ee6d036081c89696d2bdd55d507498a7180df2e19945c6642fac59588
MD5 f09b2dbc01b67c77c9cfb21c6cd70751
BLAKE2b-256 3f7daabb467d8f57d8149895d133c88eb809a1a6a0fe262c1d508eb9dfabb6f9

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 524c868ba527eab4e8744a9287809579f54ae8c62fbf07d62aacd89f6026b282
MD5 b556904943d3f617d65be55f5ed49b47
BLAKE2b-256 7d22519ff8ba15f732db099b126f039586bd372da6cd4efb810d5d66a5daeda1

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 32b9f9bcf0f605eb094b08e8da72e44badabb63dde6b83bd530580b488d1c6da
MD5 0fd4ab8d91be745e9b1503f551337f54
BLAKE2b-256 91c6de516bc082524b27e45cb4f54e28bd800c01efb26d15646a65b87b13a91e

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 cbe1698e5b80298dbce8df4d8d1182279fbdaf1044e864cbc9d53c20e4a2be77
MD5 48e54a32875879f5ab072ac24f737e05
BLAKE2b-256 2d797849d67910a0de4e26834b5bb816e028e35473f3d7ae563552ea04f58ca2

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6cef962d7834437fe8d3da6f9bfc6f93f20f218266dcefec0560ed7765f5fe01
MD5 7d353adef016733579a7e5f0df85aeb9
BLAKE2b-256 5f9ab993cb2e634cc22810afd1652dba0cae156c40d4864285ff486c73cd1996

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e4636a7f3b65a5f340ed9ddf53585c42e3ff37101d383ed321bfe5660481744b
MD5 72664f220fda3eb597d06c74b1422981
BLAKE2b-256 37a8b05ccf33ceca0815a1e253693b2c86544932ebcc0049c16b0fbdf18b688b

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 ea74cf81fe61a7e9d77989050d0089a927ab758c29dac4e8e1b6c06fccf3ebf0
MD5 097a7f8d70c4c53e065605e170c22fd3
BLAKE2b-256 19dd59c464d58c06c4f7d87de4ab1f590e430821345a40c5d345d449a636d15f

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 4fef81b2f7ea6a2029161ed6dea9ae13834c28eb5a95b8771828194a026621e4
MD5 adc62a75bbb861ddce253c9ee83407f2
BLAKE2b-256 26af733f8168449e56e8f404bb807ea7189f59507cbea1b67a7bbcd92f8bf844

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 739a74970e736df0773788377969c9fea3876c2fc13d0563f98e5503e5185f46
MD5 daf73ee5bd7019b2e014b2965287d759
BLAKE2b-256 b073536a216d5f66084fb577bb0543b5cb7de3272eb70a157f0c3a542f1c2551

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0200a5150c4cf61e407038f4b4d5cdad13e86345dac29ff9dab3d75d905cf130
MD5 2601693680c3f09e0da4e3110f0643d1
BLAKE2b-256 cd7069506d53397b4bd6954061bae75677ad34deb7f6ca3ba199660d6f728ff5

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 fb31080f2bd0681484b275461b202b5ad182f52c9ec606052020fe13eb13a72f
MD5 3ae9e8fde02a23acc71f2b7f02e5c092
BLAKE2b-256 d816b818d223f1c9758c3434be89aa1a01aae798e0e0df36c1f143d1963dd1ee

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 7f7211a746aced993bef487de69307a38c5ddd79257d7be83f7b202cb59ddb50
MD5 6ea9329db4bd383a433cc195f26906dd
BLAKE2b-256 fff031d62596c75a33f979317658e8d261574785c6cd8672c06741ce2e2e2070

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 268.4 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 3157aa512b9e606586900888cd469a444f9b898ecb7f8931996cb715f77477f0
MD5 880435c2878bc63b615a49e9325f9578
BLAKE2b-256 fdcf3bafbe9d1fd1db77355e7fbbbf0d0cfb34501a8b8e334deca14f94c7b315

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 276.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 24257953d5c1d6d3c129ab03414c07fc1a47833c9165d49b954190b2b7f21a1a
MD5 9a8fc2e0f68ddc57c28480448498f7b0
BLAKE2b-256 189de069ed94debcf4cc9626d652a48040b079ce34c7e4fb174f16874958d485

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-win32.whl.

File metadata

  • Download URL: regex-2025.7.34-cp311-cp311-win32.whl
  • Upload date:
  • Size: 264.0 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 e154a7ee7fa18333ad90b20e16ef84daaeac61877c8ef942ec8dfa50dc38b7a1
MD5 6a6518a6b76b686c82d8a192483bc155
BLAKE2b-256 ebf59b9384415fdc533551be2ba805dd8c4621873e5df69c958f403bfd3b2b6e

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d428fc7731dcbb4e2ffe43aeb8f90775ad155e7db4347a639768bc6cd2df881a
MD5 a660a5f0201cbf23ccfa46cf38913671
BLAKE2b-256 8e2d9beeeb913bc5d32faa913cf8c47e968da936af61ec20af5d269d0f84a100

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 f3e5c1e0925e77ec46ddc736b756a6da50d4df4ee3f69536ffb2373460e2dafd
MD5 c48b965533db5404fd56141006bcc115
BLAKE2b-256 cb21663d983cbb3bba537fc213a579abbd0f263fb28271c514123f3c547ab917

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 a664291c31cae9c4a30589bd8bc2ebb56ef880c9c6264cb7643633831e606a4d
MD5 75b5bcd0ddb897b7a910a8bf4d1fdc90
BLAKE2b-256 18bd4c1cab12cfabe14beaa076523056b8ab0c882a8feaf0a6f48b0a75dab9ed

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ee38926f31f1aa61b0232a3a11b83461f7807661c062df9eb88769d86e6195c3
MD5 96f81ab591199e3016e399b8e46854d1
BLAKE2b-256 0d9e39673688805d139b33b4a24851a71b9978d61915c4d72b5ffda324d0668a

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37555e4ae0b93358fa7c2d240a4291d4a4227cc7c607d8f85596cdb08ec0a083
MD5 eb4d5b09349468f6bdec5eb494309cd0
BLAKE2b-256 ee2ec689f274a92deffa03999a430505ff2aeace408fd681a90eafa92fdd6930

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 85c3a958ef8b3d5079c763477e1f09e89d13ad22198a37e9d7b26b4b17438b33
MD5 8cca1ce468839a0029f926f6dc469cb8
BLAKE2b-256 993d93754176289718d7578c31d151047e7b8acc7a8c20e7706716f23c49e45e

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 f14b36e6d4d07f1a5060f28ef3b3561c5d95eb0651741474ce4c0a4c56ba8719
MD5 2f6ceaac1b01a278d5cbb59c56104ad5
BLAKE2b-256 30bd744d3ed8777dce8487b2606b94925e207e7c5931d5870f47f5b643a4580a

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9feab78a1ffa4f2b1e27b1bcdaad36f48c2fed4870264ce32f52a393db093c78
MD5 738bae4de79ac0f4fc3c4a1c622be49f
BLAKE2b-256 77205edab2e5766f0259bc1da7381b07ce6eb4401b17b2254d02f492cd8a81a8

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96bbae4c616726f4661fe7bcad5952e10d25d3c51ddc388189d8864fbc1b3c68
MD5 315cd2800aa5977f2c309c244db70f0e
BLAKE2b-256 8e0183ffd9641fcf5e018f9b51aa922c3e538ac9439424fda3df540b643ecf4f

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 35e43ebf5b18cd751ea81455b19acfdec402e82fe0dc6143edfae4c5c4b3909a
MD5 5374f3aa0c79ab59db6649169b5c6a63
BLAKE2b-256 1cc5ad2a5c11ce9e6257fcbfd6cd965d07502f6054aaa19d50a3d7fd991ec5d1

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 da304313761b8500b8e175eb2040c4394a875837d5635f6256d6fa0377ad32c8
MD5 495cfc6c451f36b4e0d454d3040d57f5
BLAKE2b-256 0d85f497b91577169472f7c1dc262a5ecc65e39e146fc3a52c571e5daaae4b7d

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 268.4 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 bca11d3c38a47c621769433c47f364b44e8043e0de8e482c5968b20ab90a3986
MD5 329609ff5b4b5946069e2cb3ce57d58c
BLAKE2b-256 9ffc00b32e0ac14213d76d806d952826402b49fd06d42bfabacdf5d5d016bc47

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 276.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cbfaa401d77334613cf434f723c7e8ba585df162be76474bccc53ae4e5520b3a
MD5 1c6775410bfcb851127cd524e4d56aa5
BLAKE2b-256 ef6e33c7583f5427aa039c28bff7f4103c2de5b6aa5b9edc330c61ec576b1960

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-win32.whl.

File metadata

  • Download URL: regex-2025.7.34-cp310-cp310-win32.whl
  • Upload date:
  • Size: 264.0 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 3b836eb4a95526b263c2a3359308600bd95ce7848ebd3c29af0c37c4f9627cd3
MD5 14a6929ee3f9b150d3e8d93ecc9ff38d
BLAKE2b-256 ea4ab779a7707d4a44a7e6ee9d0d98e40b2a4de74d622966080e9c95e25e2d24

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 70645cad3407d103d1dbcb4841839d2946f7d36cf38acbd40120fee1682151e5
MD5 7c1cb675f127164336140a3b34ad47e8
BLAKE2b-256 5953c4d5284cb40543566542e24f1badc9f72af68d01db21e89e36e02292eee0

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 075641c94126b064c65ab86e7e71fc3d63e7ff1bea1fb794f0773c97cdad3a03
MD5 2e6920228f14fd64eac3580382175f87
BLAKE2b-256 b6d9522a6715aefe2f463dc60c68924abeeb8ab6893f01adf5720359d94ede8c

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 0b85241d3cfb9f8a13cefdfbd58a2843f208f2ed2c88181bf84e22e0c7fc066d
MD5 ba1d433b8aad23da924280b96fe51077
BLAKE2b-256 2d1839e7c578eb6cf1454db2b64e4733d7e4f179714867a75d84492ec44fa9b2

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c436fd1e95c04c19039668cfb548450a37c13f051e8659f40aed426e36b3765f
MD5 c3c2a98a8c95aef9b7c318a1024bc330
BLAKE2b-256 40e5674b82bfff112c820b09e3c86a423d4a568143ede7f8440fdcbce259e895

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 20ff8433fa45e131f7316594efe24d4679c5449c0ca69d91c2f9d21846fdf064
MD5 207f7ad115802e3a0477bada583380e1
BLAKE2b-256 dd86b312b7bf5c46d21dbd9a3fdc4a80fde56ea93c9c0b89cf401879635e094d

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 48fb045bbd4aab2418dc1ba2088a5e32de4bfe64e1457b948bb328a8dc2f1c2e
MD5 1bc00bc1267cbf1d7b7eadb214a1c00f
BLAKE2b-256 5ac2010e089ae00d31418e7d2c6601760eea1957cde12be719730c7133b8c165

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 0a5966220b9a1a88691282b7e4350e9599cf65780ca60d914a798cb791aa1177
MD5 be4b91c1444dcc8f2364c050f077b6e0
BLAKE2b-256 bf163036e16903d8194f1490af457a7e33b06d9e9edd9576b1fe6c7ac660e9ed

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 02e5860a250cd350c4933cf376c3bc9cb28948e2c96a8bc042aee7b985cfa26f
MD5 f8046ba8cc31a677970d6606e3285e84
BLAKE2b-256 cb0d82e7afe7b2c9fe3d488a6ab6145d1d97e55f822dfb9b4569aba2497e3d09

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5d7de1ceed5a5f84f342ba4a9f4ae589524adf9744b2ee61b5da884b5b659834
MD5 a346de7a2df2d68c900e99422f316a2b
BLAKE2b-256 46c7a1a28d050b23665a5e1eeb4d7f13b83ea86f0bc018da7b8f89f86ff7f094

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 95b4639c77d414efa93c8de14ce3f7965a94d007e068a94f9d4997bb9bd9c81f
MD5 c13d3081fa6dba4aa5a8a17f61e8f4c8
BLAKE2b-256 f3b05bc5c8ddc418e8be5530b43ae1f7c9303f43aeff5f40185c4287cf6732f2

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2d15a9da5fad793e35fb7be74eec450d968e05d2e294f3e0e77ab03fa7234a83
MD5 79675859a10a66af967f6b9721455682
BLAKE2b-256 2eb100c4f83aa902f1048495de9f2f33638ce970ce1cf9447b477d272a0e22bb

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d856164d25e2b3b07b779bfed813eb4b6b6ce73c2fd818d46f47c1eb5cd79bd6
MD5 bc32af2af1261b850a61640bfa8d7d15
BLAKE2b-256 50d20a44a9d92370e5e105f16669acf801b215107efea9dea4317fe96e9aad67

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-win_arm64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 268.4 kB
  • Tags: CPython 3.9, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 716a47515ba1d03f8e8a61c5013041c8c90f2e21f055203498105d7571b44531
MD5 d8f8037d4a719b60bdfc35a7f6c776ef
BLAKE2b-256 d56d183f0cf19bd8ac7628f4c3b2ca99033a5ad417ad010f86c61d11d27b4968

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: regex-2025.7.34-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 276.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f7f3071b5faa605b0ea51ec4bb3ea7257277446b053f4fd3ad02b1dcb4e64353
MD5 282d2455858b02c2d88376f4294b9540
BLAKE2b-256 820bfba6f0dee661b838c09c85bf598a43a915d310648d62f704ece237aa3d73

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-win32.whl.

File metadata

  • Download URL: regex-2025.7.34-cp39-cp39-win32.whl
  • Upload date:
  • Size: 264.0 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for regex-2025.7.34-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 95d538b10eb4621350a54bf14600cc80b514211d91a019dc74b8e23d2159ace5
MD5 0a26494a26421e521346b5088b94757d
BLAKE2b-256 5434ebdf85bef946c63dc7995e95710364de0e3e2791bc28afc1a9642373d6c1

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9960d162f3fecf6af252534a1ae337e9c2e20d74469fed782903b24e2cc9d3d7
MD5 d321e6cc5c0e5e883b53028295255635
BLAKE2b-256 7a7a9b6b75778f7af6306ad9dcd9860be3f9c4123385cc856b6e9d099a6403b2

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 7373afae7cfb716e3b8e15d0184510d518f9d21471f2d62918dbece85f2c588f
MD5 0821030d02343bf1149f7d2336d430a2
BLAKE2b-256 c67f53569415d23dc47122c9f669db5d1e7aa2bd8954723e5c1050548cb7622e

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 efac4db9e044d47fd3b6b0d40b6708f4dfa2d8131a5ac1d604064147c0f552fd
MD5 b3e12446a2ddb55050776ebc18103cee
BLAKE2b-256 97d103c21fb12daf73819f39927b533d09f162e8e452bd415993607242c1cd68

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4913f52fbc7a744aaebf53acd8d3dc1b519e46ba481d4d7596de3c862e011ada
MD5 7eb86974e6636e5590d89c76c668e87d
BLAKE2b-256 9812af86906b9342d37b051b076a3ccc925c4f33ff2a96328b3009e7b93dfc53

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c7f663ccc4093877f55b51477522abd7299a14c5bb7626c5238599db6a0cb95d
MD5 86e6ef5594c23e768493b25e44be2754
BLAKE2b-256 c14e1892685a0e053d376fbcb8aa618e38afc5882bd69d94e9712171b9f2a412

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1a764a83128af9c1a54be81485b34dca488cbcacefe1e1d543ef11fbace191e1
MD5 d5fdd3a1816361c3cfa20bd429bdea9f
BLAKE2b-256 ed9ac8f4f0535bf953e34e068c9a30c946e7affa06a48c48c1eda6d3a7562c49

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 baf2fe122a3db1c0b9f161aa44463d8f7e33eeeda47bb0309923deb743a18276
MD5 b9a5ef4c28b4538a34b9ffd98da032e8
BLAKE2b-256 17863b07305698e7ff21cc472efae816a56e77c5d45c6b7fe250a56dd67a114e

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 57d25b6732ea93eeb1d090e8399b6235ca84a651b52d52d272ed37d3d2efa0f1
MD5 0408e987c2ee34426dfcf76676f5e2b5
BLAKE2b-256 a0476eab7100b7ded84e94312c6791ab72581950b7adaa5ad48cdd3dfa329ab8

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 33be70d75fa05a904ee0dc43b650844e067d14c849df7e82ad673541cd465b5f
MD5 12922ae8a652c8c2f82cf0b218a97979
BLAKE2b-256 9ada467a851615b040d3be478ef60fd2d54e7e2f44eeda65dc02866ad4e404df

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89c9504fc96268e8e74b0283e548f53a80c421182a2007e3365805b74ceef936
MD5 b74b21cc3f519ccfa41c4f1bd6afd12c
BLAKE2b-256 46cc5c9ebdc23b34458a41b559e0ae1b759196b2212920164b9d8aae4b25aa26

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fa1cdfb8db96ef20137de5587954c812821966c3e8b48ffc871e22d7ec0a4938
MD5 d4348107de8a3a79c6dfd35b452687a2
BLAKE2b-256 144758aac4758b659df3835e73bda070f78ec6620a028484a1fcb81daf7443ec

See more details on using hashes here.

File details

Details for the file regex-2025.7.34-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for regex-2025.7.34-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fd5edc3f453de727af267c7909d083e19f6426fc9dd149e332b6034f2a5611e6
MD5 be114fa42e36bdfd07d409cb90c61150
BLAKE2b-256 d67f8333b894499c1172c0378bb45a80146c420621e5c7b27a1d8fc5456f7038

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page