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 17.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-2026.6.28.tar.gz (416.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

regex-2026.6.28-cp314-cp314t-win_arm64.whl (283.3 kB view details)

Uploaded CPython 3.14tWindows ARM64

regex-2026.6.28-cp314-cp314t-win_amd64.whl (283.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

regex-2026.6.28-cp314-cp314t-win32.whl (274.5 kB view details)

Uploaded CPython 3.14tWindows x86

regex-2026.6.28-cp314-cp314t-musllinux_1_2_x86_64.whl (803.6 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

regex-2026.6.28-cp314-cp314t-musllinux_1_2_s390x.whl (856.7 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ s390x

regex-2026.6.28-cp314-cp314t-musllinux_1_2_riscv64.whl (773.0 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ riscv64

regex-2026.6.28-cp314-cp314t-musllinux_1_2_ppc64le.whl (866.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ppc64le

regex-2026.6.28-cp314-cp314t-musllinux_1_2_aarch64.whl (801.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

regex-2026.6.28-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl (785.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.31+ riscv64manylinux: glibc 2.39+ riscv64

regex-2026.6.28-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (816.4 kB view details)

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

regex-2026.6.28-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (917.5 kB view details)

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

regex-2026.6.28-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (871.2 kB view details)

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

regex-2026.6.28-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (811.9 kB view details)

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

regex-2026.6.28-cp314-cp314t-macosx_11_0_arm64.whl (292.4 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

regex-2026.6.28-cp314-cp314t-macosx_10_13_x86_64.whl (294.0 kB view details)

Uploaded CPython 3.14tmacOS 10.13+ x86-64

regex-2026.6.28-cp314-cp314t-macosx_10_13_universal2.whl (494.3 kB view details)

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

regex-2026.6.28-cp314-cp314-win_arm64.whl (281.0 kB view details)

Uploaded CPython 3.14Windows ARM64

regex-2026.6.28-cp314-cp314-win_amd64.whl (280.8 kB view details)

Uploaded CPython 3.14Windows x86-64

regex-2026.6.28-cp314-cp314-win32.whl (272.5 kB view details)

Uploaded CPython 3.14Windows x86

regex-2026.6.28-cp314-cp314-musllinux_1_2_x86_64.whl (789.4 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

regex-2026.6.28-cp314-cp314-musllinux_1_2_s390x.whl (851.4 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ s390x

regex-2026.6.28-cp314-cp314-musllinux_1_2_riscv64.whl (765.9 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ riscv64

regex-2026.6.28-cp314-cp314-musllinux_1_2_ppc64le.whl (860.9 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ppc64le

regex-2026.6.28-cp314-cp314-musllinux_1_2_aarch64.whl (785.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

regex-2026.6.28-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl (777.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.31+ riscv64manylinux: glibc 2.39+ riscv64

regex-2026.6.28-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (800.7 kB view details)

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

regex-2026.6.28-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (911.6 kB view details)

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

regex-2026.6.28-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (866.1 kB view details)

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

regex-2026.6.28-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (797.0 kB view details)

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

regex-2026.6.28-cp314-cp314-macosx_11_0_arm64.whl (289.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

regex-2026.6.28-cp314-cp314-macosx_10_13_x86_64.whl (292.0 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

regex-2026.6.28-cp314-cp314-macosx_10_13_universal2.whl (490.4 kB view details)

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

regex-2026.6.28-cp313-cp313t-win_arm64.whl (279.3 kB view details)

Uploaded CPython 3.13tWindows ARM64

regex-2026.6.28-cp313-cp313t-win_amd64.whl (280.0 kB view details)

Uploaded CPython 3.13tWindows x86-64

regex-2026.6.28-cp313-cp313t-win32.whl (269.1 kB view details)

Uploaded CPython 3.13tWindows x86

regex-2026.6.28-cp313-cp313t-musllinux_1_2_x86_64.whl (803.5 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

regex-2026.6.28-cp313-cp313t-musllinux_1_2_s390x.whl (856.6 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ s390x

regex-2026.6.28-cp313-cp313t-musllinux_1_2_riscv64.whl (772.8 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ riscv64

regex-2026.6.28-cp313-cp313t-musllinux_1_2_ppc64le.whl (866.5 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ppc64le

regex-2026.6.28-cp313-cp313t-musllinux_1_2_aarch64.whl (801.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

regex-2026.6.28-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl (785.5 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.31+ riscv64manylinux: glibc 2.39+ riscv64

regex-2026.6.28-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (816.3 kB view details)

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

regex-2026.6.28-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (917.3 kB view details)

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

regex-2026.6.28-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (871.2 kB view details)

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

regex-2026.6.28-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (811.7 kB view details)

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

regex-2026.6.28-cp313-cp313t-macosx_11_0_arm64.whl (292.3 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

regex-2026.6.28-cp313-cp313t-macosx_10_13_x86_64.whl (294.0 kB view details)

Uploaded CPython 3.13tmacOS 10.13+ x86-64

regex-2026.6.28-cp313-cp313t-macosx_10_13_universal2.whl (494.2 kB view details)

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

regex-2026.6.28-cp313-cp313-win_arm64.whl (277.0 kB view details)

Uploaded CPython 3.13Windows ARM64

regex-2026.6.28-cp313-cp313-win_amd64.whl (277.7 kB view details)

Uploaded CPython 3.13Windows x86-64

regex-2026.6.28-cp313-cp313-win32.whl (267.1 kB view details)

Uploaded CPython 3.13Windows x86

regex-2026.6.28-cp313-cp313-musllinux_1_2_x86_64.whl (789.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

regex-2026.6.28-cp313-cp313-musllinux_1_2_s390x.whl (852.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ s390x

regex-2026.6.28-cp313-cp313-musllinux_1_2_riscv64.whl (765.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ riscv64

regex-2026.6.28-cp313-cp313-musllinux_1_2_ppc64le.whl (860.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ppc64le

regex-2026.6.28-cp313-cp313-musllinux_1_2_aarch64.whl (785.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

regex-2026.6.28-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl (777.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ riscv64manylinux: glibc 2.39+ riscv64

regex-2026.6.28-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801.3 kB view details)

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

regex-2026.6.28-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (912.3 kB view details)

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

regex-2026.6.28-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (865.5 kB view details)

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

regex-2026.6.28-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (796.8 kB view details)

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

regex-2026.6.28-cp313-cp313-macosx_11_0_arm64.whl (289.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

regex-2026.6.28-cp313-cp313-macosx_10_13_x86_64.whl (292.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

regex-2026.6.28-cp313-cp313-macosx_10_13_universal2.whl (490.3 kB view details)

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

regex-2026.6.28-cp312-cp312-win_arm64.whl (277.0 kB view details)

Uploaded CPython 3.12Windows ARM64

regex-2026.6.28-cp312-cp312-win_amd64.whl (277.7 kB view details)

Uploaded CPython 3.12Windows x86-64

regex-2026.6.28-cp312-cp312-win32.whl (267.1 kB view details)

Uploaded CPython 3.12Windows x86

regex-2026.6.28-cp312-cp312-musllinux_1_2_x86_64.whl (789.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

regex-2026.6.28-cp312-cp312-musllinux_1_2_s390x.whl (852.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ s390x

regex-2026.6.28-cp312-cp312-musllinux_1_2_riscv64.whl (765.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ riscv64

regex-2026.6.28-cp312-cp312-musllinux_1_2_ppc64le.whl (860.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ppc64le

regex-2026.6.28-cp312-cp312-musllinux_1_2_aarch64.whl (785.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

regex-2026.6.28-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl (777.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ riscv64manylinux: glibc 2.39+ riscv64

regex-2026.6.28-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801.3 kB view details)

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

regex-2026.6.28-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (912.4 kB view details)

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

regex-2026.6.28-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (865.5 kB view details)

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

regex-2026.6.28-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (796.8 kB view details)

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

regex-2026.6.28-cp312-cp312-macosx_11_0_arm64.whl (289.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

regex-2026.6.28-cp312-cp312-macosx_10_13_x86_64.whl (292.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

regex-2026.6.28-cp312-cp312-macosx_10_13_universal2.whl (490.5 kB view details)

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

regex-2026.6.28-cp311-cp311-win_arm64.whl (276.9 kB view details)

Uploaded CPython 3.11Windows ARM64

regex-2026.6.28-cp311-cp311-win_amd64.whl (277.9 kB view details)

Uploaded CPython 3.11Windows x86-64

regex-2026.6.28-cp311-cp311-win32.whl (266.7 kB view details)

Uploaded CPython 3.11Windows x86

regex-2026.6.28-cp311-cp311-musllinux_1_2_x86_64.whl (789.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

regex-2026.6.28-cp311-cp311-musllinux_1_2_s390x.whl (844.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ s390x

regex-2026.6.28-cp311-cp311-musllinux_1_2_riscv64.whl (763.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ riscv64

regex-2026.6.28-cp311-cp311-musllinux_1_2_ppc64le.whl (854.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ppc64le

regex-2026.6.28-cp311-cp311-musllinux_1_2_aarch64.whl (781.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

regex-2026.6.28-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl (773.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ riscv64manylinux: glibc 2.39+ riscv64

regex-2026.6.28-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (799.9 kB view details)

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

regex-2026.6.28-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (906.5 kB view details)

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

regex-2026.6.28-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (861.7 kB view details)

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

regex-2026.6.28-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-2026.6.28-cp311-cp311-macosx_11_0_arm64.whl (289.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

regex-2026.6.28-cp311-cp311-macosx_10_9_x86_64.whl (291.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

regex-2026.6.28-cp311-cp311-macosx_10_9_universal2.whl (489.5 kB view details)

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

regex-2026.6.28-cp310-cp310-win_arm64.whl (276.9 kB view details)

Uploaded CPython 3.10Windows ARM64

regex-2026.6.28-cp310-cp310-win_amd64.whl (277.9 kB view details)

Uploaded CPython 3.10Windows x86-64

regex-2026.6.28-cp310-cp310-win32.whl (266.7 kB view details)

Uploaded CPython 3.10Windows x86

regex-2026.6.28-cp310-cp310-musllinux_1_2_x86_64.whl (782.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

regex-2026.6.28-cp310-cp310-musllinux_1_2_s390x.whl (837.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ s390x

regex-2026.6.28-cp310-cp310-musllinux_1_2_riscv64.whl (757.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ riscv64

regex-2026.6.28-cp310-cp310-musllinux_1_2_ppc64le.whl (848.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ppc64le

regex-2026.6.28-cp310-cp310-musllinux_1_2_aarch64.whl (775.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

regex-2026.6.28-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl (769.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ riscv64manylinux: glibc 2.39+ riscv64

regex-2026.6.28-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (786.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

regex-2026.6.28-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (794.1 kB view details)

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

regex-2026.6.28-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (899.5 kB view details)

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

regex-2026.6.28-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (852.1 kB view details)

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

regex-2026.6.28-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (784.8 kB view details)

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

regex-2026.6.28-cp310-cp310-macosx_11_0_arm64.whl (289.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

regex-2026.6.28-cp310-cp310-macosx_10_9_x86_64.whl (291.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

regex-2026.6.28-cp310-cp310-macosx_10_9_universal2.whl (489.5 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28.tar.gz
Algorithm Hash digest
SHA256 3cb4b6c5cb3060cc31efdc1fbb27c25fb9b29044afd87e40601a1c4d9db54342
MD5 193dd7e09202706447f502df938df600
BLAKE2b-256 f105e4f219230e11e774a6c9987d2ab0d0c6b8573e13a17e143d0015bee710ef

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: regex-2026.6.28-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 283.3 kB
  • Tags: CPython 3.14t, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 4da6f6a72f8700b97a1a765e837fb7d5750bfd9f13acea7bae498f573e3a70a8
MD5 787a4c1fc50746066b39dd909dc7c788
BLAKE2b-256 4df3f5ec86839bbabe33b6dee649b62ff9a445d43de6b0ad780cf6b83c56f61e

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: regex-2026.6.28-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 283.6 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 ede8d8e53b6dde0a50f7eca902f0af76d87ab02a55aba7542da68ae3e5dfe83d
MD5 b9e40db0f75b8e029b4f163e7c42b085
BLAKE2b-256 0fdef8613c03b36786ddef2c930d28f9bcae861fcd541cc9203a870956cf1e83

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-win32.whl.

File metadata

  • Download URL: regex-2026.6.28-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 274.5 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 fc1eddc25ad23c0f1344ab280d961ac595ead48292d7c779497975942373f493
MD5 09b9db8f10eb447db03f83050b256464
BLAKE2b-256 faf08f86cf1a1fd85c5ab0c503c9fe4607ad4ad48978b2d8b435d94465e134c7

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43248fe4c0ab8fbb223588a0795b11268940072c97bba30ea8f9b49d8cdfde34
MD5 b9d2e62adcfcdabe85a75fa6462f9747
BLAKE2b-256 4d6c28b3fa222513484be9dee26b7222bda109056c43ea28aa2314262ca48816

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 51e952c8783eabd4706d0f63922f219bcfc1bef9b8cb35941c0d1a0396578858
MD5 3b0c90adc5b9a27cf1535e82a95b4a39
BLAKE2b-256 583cf02f860e0500c1b2d61a79dec7e214b37fb9656281dcddc92397edf96678

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 731ea12d5aeb2577eaef2393d6428b995f76eb35f68a89e03e15a97719d1de19
MD5 bc46086a8b8ef6cf951652db2a6e831c
BLAKE2b-256 6512f747de475b54f4709efb24dd0fbc8467c64cec91f5db0d047b079646ee78

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 0f09f62e450cc2f113018cc8412aeea3a120a04e1ca7e801a0d441583f9a3b06
MD5 4841fcfe2ae037e4501929f03538a83c
BLAKE2b-256 f3793c9e4f8a0306e030ad5a43bbbc01625fb28d58a813bc52d42fd1cc63fb2e

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 714d2b1aa29beef0ddfcdc72ad0771c05326551a8bb0680b0ddf74bfaad87387
MD5 2161836de8eb747629bacef3d8d35d29
BLAKE2b-256 fffd1d5350d3a8a327bff0fccacb911732baf7b5b6f5529c0e3fa602a23e7dad

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 697f103104f5872d64078d8eeac59979960be8ee76115a2d3f31096312e2a400
MD5 960572adb807d50f8fd457a5ed5a4def
BLAKE2b-256 bd5c57ce2cb8d714ee0b7f11c7ee4cfe2af66df2b90f147feadcb538609a3a02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e8184b4e2fdaf9cdfe77e38f15a4d9dc149168c9c29eb0ea17c5481d3bb80546
MD5 01b68a6aa800705bd66ad19edfaab291
BLAKE2b-256 d4601308066f5966b65fbb6905b99ba37e9f1cd753dd0ac08485f8257334ee92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 e7c42be203d84ecf7d487ff23f8a61ef0eb0534fa0fc317a2fce8c065d20618f
MD5 79c4d1d2b1a908e4d2d9b78aac6ee189
BLAKE2b-256 244dd61a702a9f9d1bd29b22cbef1aed6d477baa961232a7eb4d91b7775b0b3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 cc579c91fb4605773483a8d940b136bcc5b854fff44fa14a1572a038f46563f1
MD5 ceea2a211d79cad58d112063b9ed2567
BLAKE2b-256 df7b9a5505ee92180bcae300b1018b9ff3d3c19962436e66f2505f255e9fde35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 debe623e09cee97ef9404575e936c610aac9bb08358c5099aaef14644a6871f2
MD5 f5228541eac454d70d1e6d2d9e5c95f7
BLAKE2b-256 35ee2ac1a6b9f167f8ff69f5a789938cc103b60cff41b24a6990daced8b88e34

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e2fae6bb883648346f84db270dc9aafc29d8e895f62b88a75ccc83b09519820
MD5 e9a6a71138bb7de6cc255ff4b5435516
BLAKE2b-256 8cdca3e141a4eaf125e50f63105570c01fa477c06ac5259dcfa95e9b90760e84

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a644f6408692812f5ead82519eed680e08d5d546fddbd9f7d9514e3c73899aa5
MD5 d8a9d6a1142bfc2729b74aa2976672bc
BLAKE2b-256 07506647a7ccf5ffff995ba955a0b7d766440f4e58ce1666549c8ee998f2b972

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314t-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314t-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 3527a72adcbe9e3600f1553b497d397c1a371d227580d41d96c3c5964109b65c
MD5 190578dada1686043b0b7a79e91ceefc
BLAKE2b-256 03e621c425a37880c650d007c4171c6a80325446d830d85f5fbf335e7205b1e7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 c6e6f790d01380a74ad564f216c533b86504afb61bf66f2b2e11e7f1a3e287a7
MD5 2d8d1accefd355994d9f143301784d4f
BLAKE2b-256 36b8c9e68f3a9e33be73f20990b2c065b144ff2d0aa242608a950d8c4f3b56e8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7b15c437bc4604f03ceb3f8d37eae2f8930e320e1bc556b259848c639d9eec1a
MD5 ef56d970df292f814ddec3bf944f05c1
BLAKE2b-256 5550e19f261ff9ba9b50722a529e09b1743ecf65eb348be99d0fd2cd7fcede1c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 234a51e20ebc18ab83b2c0600cf28f2e884560a0e00f743878f0b7d8e7c4cf03
MD5 0796f027b50d15afa65e4bb817d8bab3
BLAKE2b-256 820c38b1685ad4017d78efbc8fa7dbbf96d8113b53750c8aa2d3609defd46605

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1e693940a3b9e6d6e4dc2a54ecaa74b74934f77af1ef95f518a74261ef7cc1bc
MD5 9802e48b828a1655e9188443668c3079
BLAKE2b-256 989ea93d865db0e13483ae1a01d81e2ce16d4a7fe2f9b9fe4aac4cc08590b136

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 20f4d87702702aa1d572721e146f301660c50eef6fd6cb596e48a22b0ace17db
MD5 22d4d0e982bb360adffdf5ad648f2c47
BLAKE2b-256 ca01292065a39a004b05e67a337b18213670a7cb919d6856ac2d7df7f1a10dbb

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 eacb79625323d9f7e7925366b917f492b8356fad58f5dc4fa12ff8c21d8f4ca9
MD5 8ce5fce64edc12a9d6f74d90e097a8cc
BLAKE2b-256 a2a5788245a95b69018f58bff2f4fd27d007cacaea088cdb390979743f1b2571

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 0ab0d5344311fc8e8667078942056c3b9c9b4a4b1cc99f2eb8a5af54554f4acc
MD5 dfef544b7f8e9afe774206e99c0ff276
BLAKE2b-256 4849105cd57162f5fc5c04cc917a1388a060cf8427e5c14353cd9044660fbf4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8e0ed273ecd1a89be84466c1749bfe58609cc2a32b5d5e05006c4625ba96411b
MD5 5db820ac126552ee30e4ad6264e69523
BLAKE2b-256 4e9d99730f26df4938049ab1e652ca75e967b4c6739444e18d9707bfdb8af20c

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 530b5c223b9ca5dd8370ac502e080aee0e4ded32be987c6564b425fb5523d581
MD5 958d9d7a58cf335a2444c27827ed66cf
BLAKE2b-256 d6196fd033d2ab00f35d445aaeaf3307c1e721424dcbfd48f6f65c857cb939cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 40455e6840dc4e96a6fe50f4cedc957de2752c954d91e789812be55d49be199a
MD5 da264862210f776828de9bd467a80cea
BLAKE2b-256 2944ae59c3826e7ba492e56795cdf74ea2a7b5b7c5ea116afb79ee4956a5dff1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 aa084684e6d2078bf6139e374d1fc2af5ddc1ac7122759a2db716d68169f6fd0
MD5 e51f7a96bd07c1867bf47b852540b00b
BLAKE2b-256 b9097bff2d6dbbd77421b3274aa51db1c887381cbc5b6eda93598c3e882ea345

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 ec9689392f7494ff4e3f8e7e8522f9158f11023f337eaaf04a64542fc45bbf26
MD5 90b5ab2f3969800e3b517b81597cd2ed
BLAKE2b-256 e567a83159ff8703ab4d0c2cf99e76ebf289b7b4a501623241d09f88f3614f80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 94f06cdcd6421f8e194ad312ea608020381250df9b8a57661c1b57e9e5273878
MD5 f2aff22481432954ac363547352c94b6
BLAKE2b-256 fd22ad1955c47c669291a05804d53d7071cc0732dfdf166857be38003cedc2d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c0013958f427bd82509a186b9ff206d66cb8d60a81fc797a4c717afd18c5b0ba
MD5 0e9627cc02ba7eea3a180f35b10bf0d8
BLAKE2b-256 23d26a911f18279daa8d7bb8b20d771ddb6ef31fabd35f5921f9d3ba21640e80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f6710f512c57b84f127a23d0f59560a03b64136eff419ae1be5ab557577fe5e3
MD5 80b82937842cf6c444a894b3dd5b6a06
BLAKE2b-256 d652b8c79d12276d93e90e707e939b396034c04980caf1235312ef790f8e11fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp314-cp314-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 f7c032b0c8a73739ff8ff1aaf30c281fa19c17bf7f1543256c8507390db7807c
MD5 109ac28c302c2b32afd6eee4b60c464a
BLAKE2b-256 3bfbfad3b810a5bb1e09b9e5d6913fc6ba88cab738fdf283196827a3c59a4c10

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-win_arm64.whl.

File metadata

  • Download URL: regex-2026.6.28-cp313-cp313t-win_arm64.whl
  • Upload date:
  • Size: 279.3 kB
  • Tags: CPython 3.13t, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-win_arm64.whl
Algorithm Hash digest
SHA256 3f15020f0b69cafe57baa067ff65b29acef68ff6b1670a53bef1ca11d708e02d
MD5 5f5faa44835d2e0ac6333e1e7c5bcd69
BLAKE2b-256 eab969f4e5cd6fbe0bb420cb2dbae441ca118f2495bdda522a74da75aa9829e7

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: regex-2026.6.28-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 280.0 kB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 1484bdd6fba28422df9b5ebb04055b2e1b680e8e4f08490bb21ff0f3cc50d0ab
MD5 4d7cef6152870cb612571b53ea7ea9ec
BLAKE2b-256 3c3c32cda905ea1a6eeeb798291c294d8ec66ee0efe0cdba28b061e248b1d396

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-win32.whl.

File metadata

  • Download URL: regex-2026.6.28-cp313-cp313t-win32.whl
  • Upload date:
  • Size: 269.1 kB
  • Tags: CPython 3.13t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 3f6316f258bc7e6c9c2acbe9954947bbd397a81be3742a637a555f1855d6618d
MD5 9310fee0f21cb1d59b0c2bdebac402e7
BLAKE2b-256 7c3e6be10cefdc813533fe604dbf5d3c77d2638e7ee658b2749ebadc113b6b2e

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c4ac65f3e3a99fd8f3a4a74e7a6610acd1ce9dfe9b8a03d346a4922380d68aeb
MD5 4e33005a6b8cd50f8588a09bc5400c89
BLAKE2b-256 282651d74fff82f682819979249f8d700267108ba5dc4eb284b0e11b9c85e4b3

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-musllinux_1_2_s390x.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 c91487a917edd48a1ea646fdf60d7936d304f0e686fa7ea8326e47efca51d816
MD5 e672f95940345052ffb3b5e64ac3578a
BLAKE2b-256 06bcbbf4a5b3b29770d7f307d3c28b5b1bca0105b0cb424be0a4eb1339bc92cf

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 b15859e3908544fb99cf47341dcf0bfd089147d258c4c4d8a29e5b087f8085cb
MD5 bde3b465f19f17894db6592dcb210360
BLAKE2b-256 81ed385c2a0351b994a693453c1d1a6e9af9eb35db3c9460d76b5078acd70c62

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-musllinux_1_2_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 6de82c268e5d101ee9e3ffd869924aa9a371e3a21e752cf4fa17b6ce50d219f7
MD5 9a8bfe4c095da33970c1029bd24cfbfa
BLAKE2b-256 a897601483732f93275482ceb9fed57813dfed7c47d3a019db6ec4a3bb6e23e0

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b77207e3cee13086f1906a6a2a12b41244c577e8ad9370d4b35ae1d548d354f3
MD5 ecab9fb5468b76335e975033ab49d8b3
BLAKE2b-256 b40a88f9cd88ff1e82881605c4ffd62d77ee67d051232cfe6f8e9a64b86cf0e8

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 3bd630a8dba06b55254ea5ee862194edab52ec783100d2ef1cd15a9c512fee27
MD5 806b3169a8cb5a7cfb53c77c9d9dff6f
BLAKE2b-256 b401ecfe665a3694d5eda9f3ec686c856438ada0943947b6005e90556a1e2cdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a043f5770e82283a22aed4cefef1a4e0f9dd8fd7184cb6ce0ad2e579e2134a9e
MD5 18cec37393653def49e6d3390d40dad4
BLAKE2b-256 11756b78df2b858c2fcbbc4858fdc3f2975cf2703be374b2842db7d2c32591a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 80c7adf1ef647f6b1e8aa2ca280e517174cd08bdf7a2e412cdfb68bd6a0917cb
MD5 7925895fc29d10771e50c1e557dee9b9
BLAKE2b-256 7f640e5ba31c11eb8ef7aac19a690c1211fc9aa9990caf09565785ebb0081b9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 9cfcd4b0bdcf768c498415c170d1ed2a25a99bf0b65fa253bbd02f68ceba6475
MD5 2d48f135dec0760b5135bcf8e314544e
BLAKE2b-256 2ffbad04c39e149bf8b6cf357df5fff78341733ec366780a00c803a36735818c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e4466b8641e00c697aab5a73150150d2b2ea96b131c595691f42031abafd9f4d
MD5 254c30fb4c3c8ee4d62ca645140b86f3
BLAKE2b-256 fd3af49b11e59cbfe187ace0053a460bd72a0169b8cd52e7db9421a074ce7a43

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 17eddca4e8ea9af0b5739314776cdf0172a49731ab61f2e1ea66e066ddd46c97
MD5 3c8c4c7b8e73e0f9099b78e91c23fb23
BLAKE2b-256 8d4e9bdf444014d22b045d0c82ca114fac7e07a597b5b5331b7c4ce6328426e2

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9277a4c6503390aa39cb4483b87ec0384faee0850a23b5cea33d008b5d8d83f1
MD5 763197d678d3311171098a40c35b57c5
BLAKE2b-256 fde2e259c5f2f7be269d0e2fb54275c1fa6a13fb47019f389c3f3ae457447825

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313t-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313t-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 189dbf9fc4252d9f1352bf4bd1bef885edb6cc4b7341df202a65f821aaa3891c
MD5 4a768eebe59e3213bb919668348ff7bc
BLAKE2b-256 cbe19eb83518e159d719fd681c4932dc2aaff855ce72451e1d05d69466f25a96

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 695873e0ea8d3815ea9e92e2c68faf039cc450e2c0a62a31afe2049eb11be767
MD5 c953dfa7b0e2000a0da8c770bae533a8
BLAKE2b-256 b6997f664804f1aef924542b0b233996b78b3e4d0a52d9951358aac99f129f51

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e128feaf65bf3d9eb91bec92322a8f7e4835e9c798f3e9ea4b69f4def85620e3
MD5 772e3d8387c558eca9fee8a2a06e39de
BLAKE2b-256 685521022f7d3143210ae8d4ff905c45306237b657375cc0b97883f49db3d423

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 bf54bc693fc4e0530e666ba5ec4bcba14dbe8f66b7cfc15c27317d1a6e40b9a5
MD5 e60fad74ac9dfda2530a63396d3b6b41
BLAKE2b-256 88fdab5b03653a244975069fed93d73f4f5f7484c03a84cedb238292510d7182

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bfc9677982c914d9085b8e1c3b3ae6e88f139fb56531c2416d6c8f338093c22b
MD5 f706b25696895b2e088c82c37ff3ad9f
BLAKE2b-256 f9c30390b66e3019497143fe768b3ba567b64d8b24f3812d09506deb86f4a0f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 ec2b2ad00ab8c16a2798cc8db80c53c4d5b8b3a2441f6cbaef06625f5ca25854
MD5 7b91793bcb017a6e77efbad68d540811
BLAKE2b-256 bec552bbd436cf2200decdf48825fa38363eaaeebb77011ea9928a1ef9e0b9f2

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 abb4daabe7be63273787a62dfd6164dadf8f7a63fbec3d2730e5e5e7126d858c
MD5 291b8c476d4800aa8540fab1a47223af
BLAKE2b-256 616649808aea0da9649c300139360708fb91b7144be1f962fcebf96755fde948

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 64e142eb55e84868087da1375d7c36ff97d55010951849f515322a91d5fef1b4
MD5 febd48cf0800790421c89a3f13531e67
BLAKE2b-256 7959c36e756ad29bf14d7b6c6d7138952476b21f6160286cedb98ac13481c993

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5f2c1682b67ad5d2376498f2a5a2a8f782fa2e4a06d0465b5e357799806e8a20
MD5 4522800d9c1baf9f7fa465a6884687a7
BLAKE2b-256 855ab57593c0aa23ed269ec332fbcf07852abcb6b746e811d9464e0d09b4e25f

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 cadea12805a1bce0b091c302b814207be26fb60a9c0e7f9ad2f9e21790a429fe
MD5 98839293c383c0452a13e12d8cd3f0cd
BLAKE2b-256 fc092103686defaf9a0a31c1663782359d5b45f42524c64cca681f5481e44a5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4dfd1331c49233998d84fc5f1f4436cf7a435a7655f6cf0f490229bb5c7254e5
MD5 ed1fedf72f2d0bd447297c8b62cf7021
BLAKE2b-256 5b5bd65adfbd02f32212431bca1f06d1e2eb763a20b12978b454bafaf23dacb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 e86e91a2664f44c3a4e363a7d78fb17c27d5046882e30ea5a877f5e89b28d2ba
MD5 9ce9bcaa130c75c9fa6480bcacfdd4b0
BLAKE2b-256 4edb0b479973046d005a1eaea299d5d536aeecb9488a16d9cbb8286338102e2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 0e6cb5a61486f9062397d2e189573b39d38ecfaed698fd9fb6e2756a8ebb8762
MD5 32884f72a00eaf845ddc140045c74d1f
BLAKE2b-256 92fac0cd1a90b7d12d9dc155cfc8bdea8df9720988ea5b07e8fa1eccbd0ab2dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 17c077586770f67e05bbffeba07fbee6b2b22244f4d4caf8d94e59d574befe04
MD5 9668771b1a5396b02ace213bb2100106
BLAKE2b-256 734c293fb34586fbcdc47eac436069e9c11f71fae5dadfd4889b475d7d2e5f7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6bf295f2c59de77d1ea7de053607ae4dc9ceb3d57bbb6c7ec51ef4acc4ccff94
MD5 8cb59b0124a4423fea767ea13013c5d3
BLAKE2b-256 bb7fcd004e13fcad23b3794a82307dfd222e6365eb7f598bd3caab148a830bff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0c31665c0deb5c111557a1cac8c27bd5629e2f9e7fd5058900a03576c33b601c
MD5 19a7102d9395d1d0b49e12153631aa8b
BLAKE2b-256 8d9f0c3503e819e91ca0e7a901a8e989ebf840ac7c7aea20b1fc7f31b6759f77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 b295a83426e0e44e9e60fde99789e181bd26788a1890ae7fe2a24c69bb6246ca
MD5 293f1c08051344946cc1d52af0b669cd
BLAKE2b-256 b653d5c1b3cc0b5a0c985563ad6fac93d73ff2b300cb84342d89f044625d6bc7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 37294d3d7ddb64c7e89184b2894e0f8f0a19c514bc59513d71fe692c3a8d5fc6
MD5 ac95f100342c650be2f2e740b572f52d
BLAKE2b-256 8606be4f6b337d773ae5739a1bc238f97c16926e72017243735853c030f4c628

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fbd2ded482bf99e6651992bbfcde460272724d4bbc49ef3d6b46d9312867ec84
MD5 66444399452878b52b9f71041a90c36b
BLAKE2b-256 a059bbbb0591f38b18c65977cd65ce64749eba1c1996c99ac04e900fc30c0dcb

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 03376d60b6a11aecb88a79fa2be06b40faa01c6693bc31ef69435cd4818b9463
MD5 0260dc33c6a3853fcbf44335a2e7a17d
BLAKE2b-256 7201d36561c21c3033d7eeb31d51b491916817de7861acefccc5fc9db8a5037c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 700fc6a7844bb2c4149292ac79d1df8841a00acd4d45cd32c1ebc7bcc1fd0da8
MD5 f6194b980398c72a8e728a93f496528f
BLAKE2b-256 a23e3e31e255c4971f53cbce6306b5e3c76cbd3735a54f419bb3b2f194e9f68c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 2e27727fba075f1e4409416d2f537d4c30fc11f012ea507f7bd74d3e19ecb57a
MD5 60d9f58f56c181639c472a643a71031b
BLAKE2b-256 e3df9ca3e378e352242a4cb45573a5e9162c3ee791507702a23966fa559e36b5

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp312-cp312-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 b916a10431494ef4b4d62c6c89cab6426af7873125b8cd6c15811bf5fc58eec8
MD5 c29a21a452277332c585b779fb4413e5
BLAKE2b-256 a82cc973323306a27c9db7d160e9584eb7e0ece2a96224ccb0d39060558b31f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 4cc199874ecd6267a49b111052250825bfe19b5101b23b2ba80f54efa3e0994e
MD5 c0eb284e2c580c3884876337ac5a2a88
BLAKE2b-256 1c790aabe34b8482dcadf64355f70f96e22eba5ec6c1efb33563f89654f4061c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 378a71d861fc7c8806b04ac5b133d53c0e774f92f5d9663a539872d3fa2b0417
MD5 7c8b182d309ebb37b03cc6a09be11a2d
BLAKE2b-256 2018fdd4c883a39e3ed00d669062af1135809bfd3281bf528150849fbd68825b

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 28f9e6c28f9b90f6f784595a33240a57e181e61b6ee3dc259b25c61e356d1aa3
MD5 ad33471692afa1089d383866af0b376c
BLAKE2b-256 eb27af1eb74e9a78c782b3e450b611a595e44906da8a5107e1227f4a7fd0480b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 90581684565a93f7258af1e5d3f41ef20d7d7c61f2a428183a342bcb65485e38
MD5 f6432e6f74569f696ee593f0b1205c70
BLAKE2b-256 5e603ba57840bcc7e2367090360de0c15a5ba6ad22be89314251105f2e943f43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 f74675ab76ab1d005ffba4dee308e53e89efc22be6e9f9fae5b539a3f81bdff2
MD5 9af0b447f6164056180f0e53af08d2e9
BLAKE2b-256 2006491802db47c6f5e2904ffa2518ad3ac27fe6bbf5a66d73210a95cc080d47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 56b856b70b96c381d837f609eee442a1bd320cd2159f5c294b679552fb1a7eaf
MD5 e7b4395925571b2eba453076cf300597
BLAKE2b-256 b0951309645a0e1ee6fb91d954501da57a0b33d50ad2a9acb313702851a7054e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4303ebe16b74eeb3fe2715745023266fea92fd44a23f3e7bb2fb48c7a7bbc195
MD5 d21fa1c78309cc87b98164da03239e9e
BLAKE2b-256 5011c013422a7e2c59946df8ac93e792a4922c98287f2a2181341603c78a5d98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ecd1638b1c2db1f2d01c182a4b0d3e2e88b0e99910320a745c1727ee3638ddab
MD5 d0794849608918ea4e91921fef35a9d4
BLAKE2b-256 cb0eca20a0e0de49837e6337603a91ab77556aa27033ac5b975615d98698cfb3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e18225243250a1f7d7e5e5d883f3b96465cd79031acf5c6db902b7025f2125d9
MD5 565095f5fda53773e00204a87962ff2d
BLAKE2b-256 8b5f30d4116093c2128099f78b6990dfc1698fdbf3ee528f1e1c647378034c79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 81cc5793ad33a10444445e8d29d3c73e752c8fb2e120772d70fcb6d41df40fe1
MD5 c727a8581a7ba4276f0cd40079c3a276
BLAKE2b-256 da2144aa415873032056c43eac21c67285deb2cf66cddb2a964c3cdc8f803efc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 f5fbaef40c3e9282ccee4b075f5600a0d858aa0c34147732f1baa69c8188a95d
MD5 dbaa5346a594e06358af4e164f74798e
BLAKE2b-256 89b2a222392207db7ed86281a732a99f7cf7f2bb35d332799e892b8510be000e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5977295b0a74e8241df8a4b3b27b12412a831f6fa32ee8b755039592cd768c3d
MD5 aefa00e20086bf17913f5d833cece5fb
BLAKE2b-256 c6cfa48d8e8d406b22481cad146f48fa0dfca3c5f402b91f26d8e5a0fe4f513d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 3169a3159e4d99d9ae85ff0ed90ef3b8906cc3152653b6078b842ace6c8f72c3
MD5 2d50ad485c333343262870021ba6ff3e
BLAKE2b-256 f8eacf7f6f6f152e52fdad978b913bf24c14df647eca0f81ef31f3aee0be8982

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1e164ace4dbab5c6ad4a4ac7c41a2638fe226d0c770a86f2eb041f594bac6ee7
MD5 7b2dcdffc62c94d1a005077c6ba28497
BLAKE2b-256 6aef55abb149599dce1ade687170557129524011eeb3d92afe02429cea7754a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 d98b639046e51c5de64d9f77351532105e99ca271cb6f7640e1f903d6ab63032
MD5 a6c952f62260a06ffe61a60f3cb19feb
BLAKE2b-256 e13290ce0d0898e205506cc22b9c81cfb16b722e06ca5f50fad51c053c2a727b

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp311-cp311-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 f1da438e739765c3e85175ede05816cbede3caaacb1e0680568bda6119bfdfca
MD5 d5655cd70ad1265e10454ed506592572
BLAKE2b-256 727cf0340384a973082979064156d05f3d2cc1dced7371efcd7a1b45726a1a8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 ad5c67786145ec28a71a267d9f9d92bdc8d70d65541eea852c253f520a01f918
MD5 80d67b24e3d60e4b0affe0aff3cf2a26
BLAKE2b-256 454ee2fd4bb8228e10c24af2d7ff867182372190e498eab9fd29cbe54c403c95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 11251768cc23f097dd61b18f67966e70f74da822784d17e12a444eb6b29d4288
MD5 483687e074c048972d2c19816b725e7d
BLAKE2b-256 ebd9ff39afaec92b9ee2dba0302a4783976005091681069808938c31cf8df3b6

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 8b92366d9c8bba9642989534073662abdd9b41faf7603a7ae71597833f3b88f0
MD5 aa8b837c5c6957d6c45f436fd4dc523f
BLAKE2b-256 eefde5d965d41f2398c8ce0f37a4652f03bb297fd009bb796d390134225dda12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a361feeaf1b6ba1df060f2ff5c5947092edf537a35ce78e76387ac56d3e0f4a4
MD5 e6b5d7d7cc46eeda04877d930cecec18
BLAKE2b-256 cdfd93bfe5af45f0be4fa8983945455c0e6924e1aeb879cde227958869c1e71c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 4d80c798b0eec6ea3d45f8816a1e8886c5664615d347d89e8c075b576a1b5a5d
MD5 06c1aa82ecbdaec1680ec5a9adbfe13c
BLAKE2b-256 4cec024d7638c807679ff8a0e6081d01d66c7762339af1cac71e45911587ff9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 ad73ecf20c1ef5c975639f8bf845a9370fcf7dada7edc1e3b0bca20e2f8202f6
MD5 247694a479fdb0a6d4e0c42c01029684
BLAKE2b-256 8e9204ae94cbe0dd1f478b2aef6c46f995bb6946d3e338d4b28605478b66a2b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f1758df6fdd8c800620a5638958720e8a635e1da49a2f09df2dd63e94a24ec4a
MD5 e714e2a99124df47632ec0ae1649d1bc
BLAKE2b-256 4bc8ca0ac7f09cc88ca61e0c61c53f7db29334f660ffba5d0b52378e7c44723c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5efbc1af38f97e300d43028e5a92e752d924bcfb7f465d8669d5d5a6e78c233
MD5 69e8aa62f53c800eddf9fd2a3e5afb55
BLAKE2b-256 5ecce0d762a189cfb4e8926d16e691720690d139a977b38fdb80230c259332ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9c26a47770d30a0f85c01e261d2a3ebc342c4af6fd666dbd8c1fe4cbf3adf726
MD5 f755d5a507c273d2b38a26aac1055ee1
BLAKE2b-256 353f24097a3c3ff30f9a639888900faaecabcf5f54a5bc9c851c297e11b349ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a71b51dd08b9b62f055fafab3dee8af8bd2ec81b373a44caef18d6c5ca28f43a
MD5 cd7b8987e3509c8217ac669b9fc39606
BLAKE2b-256 72db9051b36294bdbabaa9c7db57db0fbcdfbd17f7a106c539bb423d0323faea

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 ed7b30185ee3f8b9b053b0be567b4d226016e2afbebc17fde1c6a4580937b688
MD5 4e06b818bb8d0c1e56f2c42585e63811
BLAKE2b-256 7bacd35ccc309c9409406445ab2ef0b56f6a341a916ccff49ff9ac5cc6bb8e9b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 70710927033af3b54369f17aaba1343b97a23d0b1aa994fa1512b08b1b8c136a
MD5 17ba30746d8008017f73e45e8ef9aab8
BLAKE2b-256 f38fcb656529efa87d74cce0d69e606c745537016da3bdfae78f342af2242ee3

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2026.6.28-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 56f05194c4843957dd8b3af87eb0c52d8cf0509e7f18e172d727f5f8ff840646
MD5 d15b471665184ae3274cfeda9b9b5ec1
BLAKE2b-256 cd4dc379001448d0f58b6946f168d4af96ad60a16c1553259c27b0df8701b640

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7bb96c13d6cf5880d31bbef84ca701a64d738aa491c2b79975cc33f8ad00a31e
MD5 7f22936df44d3ce80956ec8387131d9d
BLAKE2b-256 5d31da77e3ef7b594a2aacbd03ce3d0050f33ab3e021df50c6901467c9006511

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 7635fa2cddb917a6bbfac7890602573d2d8c4e470703b0640e6f86a988817ec3
MD5 3bf90d7f10b6c3bd5ee95686dc20e35c
BLAKE2b-256 2010fd5653b8572910a4fe9055f8959b070d7d9443c94ce986529fcdb5fb2a3c

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp310-cp310-musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 418208ea0af51cfed4f46eb9b1ea7cfc990ca284f0084ecbd951460fb089421e
MD5 43b5884ac827d8a6527fdf3cbc13b36a
BLAKE2b-256 f7b83d1f995727799a1e2e693e397acb7358094606e5591b6b5fd3128d2d1409

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 a7cf03c87f7b9cbc25a8894cf9be83818406677b6b391b003ec7c884923387b5
MD5 a0d8d21e283db877b79d7aeac76f487f
BLAKE2b-256 73974e46f7abf2f864319d2bcac609af3c0532968c66a3364337778fd232b83c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3c60b297292e7e1ef5d02a4759f9e452ee4c8bb95e168d8fd0b5db01bd806f9f
MD5 a8483ef8065bc36c0cb777c7d3ca23dd
BLAKE2b-256 4304f9040a5360a06241ba5b7f2e6f1c6184e104a84e6f6522535700e94bf8e2

See more details on using hashes here.

File details

Details for the file regex-2026.6.28-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 ff0f41a00f23ea5054acb61901380c41813d813eee3f80f800995710bcc52ecd
MD5 fe932a02cfafbb8f5cbbfba2632fe222
BLAKE2b-256 6d9ef5bf7ecbd14ff2086f015c54dc24fd0d74ba5327fef0de479213f8128615

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 76493755f79a88d5ed2c9e63a41d3c05997e0a7ffbe76ed8c4ded8be35b8b14c
MD5 747a3c60cc412a4bb69efe1ec175e939
BLAKE2b-256 fa11ea2ca423eeaac2e18077a18b058614e9201f130750df2126d444e39acab2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 23f7e0cc60c72486b42a685f1ff4eec90d50d4fb05e4f9c7d5363b03aa02600d
MD5 45ff8a7de9e68542fe6a29ecf4bc4b2d
BLAKE2b-256 aa72becc00d839f19401f10a20168b44711c7b02f7f62bba875b2d8f98417435

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 c10f2c5a55ab3dd8318d8ad5f11b530e2691c0edebebde7713066f484902c3fb
MD5 60ee07fa7a251be1b08a634f12407655
BLAKE2b-256 c077d506a428e446466ee298f5425a774737d0671d070425ed794bb3314d60c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 f5561e47bbe2b75373b695326507743fcdd4d2cc7f5022312024ccf39fa094e0
MD5 6a83dae6adcab6d5468e2055c22bd7ae
BLAKE2b-256 0494c9e3ad31b3d5fbe1228fee8319e0c02a5460296624f220d08764547fe6ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 31d7538a614b5842bf53ce329d07b43f97754ca7e6db8d69f347e071bce1c953
MD5 e019f412bcddea5d0d296aa962f6e1a8
BLAKE2b-256 2556f615165e90ac5f3b72b249240643439520bbac0ac60a9de06868528eba4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2097591101d70bcc108af64c46f6066bb698ee067fec5f75beac0be317639311
MD5 40504bd5653b3f2b2ce94db8dd1f918f
BLAKE2b-256 dd1fbfe5b529257f0853aa6b94146e0f6462f4d45aa4f3c05d5a828f415dfd40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e81f1952355042e517dc9861ce65c676e4a098f42402993c40461786d1f794d4
MD5 21b4f2ed1f6dd0a59f8e0ad2c58df962
BLAKE2b-256 44b39786a4a2133e2f1cc5897ed3d2da3da29ff54b775ffa38bc5935fc24be82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2026.6.28-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b83932645630965fd860fdb70ebbf964bf3e8007f08851ea424d01f8d35454a8
MD5 cdb37ba8591b9c511c6dd4890aed77b6
BLAKE2b-256 d8dcf7a8c9cf0768f704153d358fae2bc883199bc4ea1e4aa458f1be9d0ef2ce

See more details on using hashes here.

Supported by

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