Skip to main content

Alternative regular expression module, to replace re.

Project description

Introduction

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

Python 2

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

PyPy

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

Multithreading

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

Unicode

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

Flags

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

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

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

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

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

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

Old vs new behaviour

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

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

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

    • Indicated by the VERSION0 flag.

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

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

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

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

    • Only simple sets are supported.

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

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

    • Indicated by the VERSION1 flag.

    • Zero-width matches are handled correctly.

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

    • Nested sets and set operations are supported.

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

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

Case-insensitive matches in Unicode

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

Version 0 behaviour: the flag is off by default.

Version 1 behaviour: the flag is on by default.

Nested sets and set operations

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

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

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

  • Literal “–”

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

  • Literal “]”

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

  • Set which is:

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

  • but excluding:

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

Version 0 behaviour: only simple sets are supported.

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

Notes on named groups

All groups have a group number, starting from 1.

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

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

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

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

  • (\s+) is group 1.

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

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

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

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

Additional features

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

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

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

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

The test of a conditional pattern can be a lookaround.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Added \K (Hg issue 151)

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

It does not affect what groups return.

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

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

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

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

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

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

Fixed the handling of locale-sensitive regexes

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

Added partial matches (Hg issue 102)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Added capturesdict (Hg issue 86)

capturesdict is a combination of groupdict and captures:

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

captures returns a list of all the captures of a group

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

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

Added allcaptures and allspans (Git issue 474)

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

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

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

Allow duplicate names of groups (Hg issue 87)

Group names can be duplicated.

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

Added fullmatch (issue #16203)

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

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

Added subf and subfn

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

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

Added expandf to match object

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

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

Detach searched string

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

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

Recursive patterns (Hg issue 27)

Recursive and repeated patterns are supported.

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

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

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

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

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

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

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

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

Full Unicode case-folding is supported

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

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

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

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

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

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

The 3 types of error are:

  • Insertion, indicated by “i”

  • Deletion, indicated by “d”

  • Substitution, indicated by “s”

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

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

Examples:

  • foo match “foo” exactly

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

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

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

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

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

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

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

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

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

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

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

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

Examples:

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

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

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

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

Examples:

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

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

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

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

Further examples to note:

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

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

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

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

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

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

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

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

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

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

'anacondfuuoo bar'

it would’ve been an exact match.

However, there were insertions at positions 7 and 8:

'anaconda fuuoo bar'
        ^^

and deletions at positions 10 and 11:

'anaconda f~~oo bar'
           ^^

So the actual string was:

'anaconda foo bar'

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

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

One way is to build the pattern like this:

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

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

The new alternative is to use a named list:

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

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

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

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

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

Start and end of word

\m matches at the start of a word.

\M matches at the end of a word.

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

Unicode line separators

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

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

Set operators

Version 1 behaviour only

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

The operators, in order of increasing precedence, are:

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

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

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

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

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

Examples:

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

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

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

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

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

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

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

regex.escape (issue #2650)

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

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

regex.escape (Hg issue 249)

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

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

Repeated captures (issue #7132)

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

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

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

  • matchobject.starts([group])

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

  • matchobject.ends([group])

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

  • matchobject.spans([group])

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

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

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

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

Possessive quantifiers

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

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

Scoped flags (issue #433028)

(?flags-flags:...)

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

Definition of ‘word’ character (issue #1693050)

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

Variable-length lookbehind

A lookbehind can match a variable-length string.

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

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

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

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

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

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

Splititer

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

Subscripting match objects for groups

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

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

Named groups

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

Group references

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

Named characters \N{name}

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

Unicode codepoint properties, including scripts and blocks

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

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

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

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

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

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

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

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

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

A short form starting with In indicates a block property:

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

POSIX character classes

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

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

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

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

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

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

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

Search anchor \G

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

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

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

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

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

Reverse searching

Searches can also work backwards:

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

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

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

Matching a single grapheme \X

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

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

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

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

Note that there is only one group.

Default Unicode word boundary

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

Timeout

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

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

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

regex-2025.9.1.tar.gz (400.9 kB view details)

Uploaded Source

Built Distributions

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

regex-2025.9.1-cp314-cp314-win_arm64.whl (271.9 kB view details)

Uploaded CPython 3.14Windows ARM64

regex-2025.9.1-cp314-cp314-win_amd64.whl (278.7 kB view details)

Uploaded CPython 3.14Windows x86-64

regex-2025.9.1-cp314-cp314-win32.whl (269.8 kB view details)

Uploaded CPython 3.14Windows x86

regex-2025.9.1-cp314-cp314-musllinux_1_2_x86_64.whl (788.0 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

regex-2025.9.1-cp314-cp314-musllinux_1_2_s390x.whl (848.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ s390x

regex-2025.9.1-cp314-cp314-musllinux_1_2_ppc64le.whl (857.4 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ppc64le

regex-2025.9.1-cp314-cp314-musllinux_1_2_aarch64.whl (786.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

regex-2025.9.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (801.8 kB view details)

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

regex-2025.9.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (910.2 kB view details)

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

regex-2025.9.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (863.4 kB view details)

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

regex-2025.9.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (797.9 kB view details)

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

regex-2025.9.1-cp314-cp314-macosx_11_0_arm64.whl (287.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

regex-2025.9.1-cp314-cp314-macosx_10_13_x86_64.whl (289.5 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

regex-2025.9.1-cp314-cp314-macosx_10_13_universal2.whl (486.1 kB view details)

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

regex-2025.9.1-cp313-cp313-win_arm64.whl (268.6 kB view details)

Uploaded CPython 3.13Windows ARM64

regex-2025.9.1-cp313-cp313-win_amd64.whl (275.5 kB view details)

Uploaded CPython 3.13Windows x86-64

regex-2025.9.1-cp313-cp313-win32.whl (264.5 kB view details)

Uploaded CPython 3.13Windows x86

regex-2025.9.1-cp313-cp313-musllinux_1_2_x86_64.whl (788.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

regex-2025.9.1-cp313-cp313-musllinux_1_2_s390x.whl (849.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ s390x

regex-2025.9.1-cp313-cp313-musllinux_1_2_ppc64le.whl (856.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ppc64le

regex-2025.9.1-cp313-cp313-musllinux_1_2_aarch64.whl (786.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

regex-2025.9.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (802.0 kB view details)

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

regex-2025.9.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (910.8 kB view details)

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

regex-2025.9.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (862.6 kB view details)

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

regex-2025.9.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (797.5 kB view details)

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

regex-2025.9.1-cp313-cp313-macosx_11_0_arm64.whl (287.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

regex-2025.9.1-cp313-cp313-macosx_10_13_x86_64.whl (289.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

regex-2025.9.1-cp313-cp313-macosx_10_13_universal2.whl (485.9 kB view details)

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

regex-2025.9.1-cp312-cp312-win_arm64.whl (268.6 kB view details)

Uploaded CPython 3.12Windows ARM64

regex-2025.9.1-cp312-cp312-win_amd64.whl (275.5 kB view details)

Uploaded CPython 3.12Windows x86-64

regex-2025.9.1-cp312-cp312-win32.whl (264.5 kB view details)

Uploaded CPython 3.12Windows x86

regex-2025.9.1-cp312-cp312-musllinux_1_2_x86_64.whl (788.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

regex-2025.9.1-cp312-cp312-musllinux_1_2_s390x.whl (849.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ s390x

regex-2025.9.1-cp312-cp312-musllinux_1_2_ppc64le.whl (856.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ppc64le

regex-2025.9.1-cp312-cp312-musllinux_1_2_aarch64.whl (786.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

regex-2025.9.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (802.0 kB view details)

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

regex-2025.9.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (910.9 kB view details)

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

regex-2025.9.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (862.7 kB view details)

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

regex-2025.9.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (797.4 kB view details)

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

regex-2025.9.1-cp312-cp312-macosx_11_0_arm64.whl (287.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

regex-2025.9.1-cp312-cp312-macosx_10_13_x86_64.whl (289.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

regex-2025.9.1-cp312-cp312-macosx_10_13_universal2.whl (486.3 kB view details)

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

regex-2025.9.1-cp311-cp311-win_arm64.whl (268.5 kB view details)

Uploaded CPython 3.11Windows ARM64

regex-2025.9.1-cp311-cp311-win_amd64.whl (276.2 kB view details)

Uploaded CPython 3.11Windows x86-64

regex-2025.9.1-cp311-cp311-win32.whl (264.1 kB view details)

Uploaded CPython 3.11Windows x86

regex-2025.9.1-cp311-cp311-musllinux_1_2_x86_64.whl (787.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

regex-2025.9.1-cp311-cp311-musllinux_1_2_s390x.whl (844.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ s390x

regex-2025.9.1-cp311-cp311-musllinux_1_2_ppc64le.whl (852.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ppc64le

regex-2025.9.1-cp311-cp311-musllinux_1_2_aarch64.whl (781.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

regex-2025.9.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (799.0 kB view details)

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

regex-2025.9.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (905.9 kB view details)

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

regex-2025.9.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (858.7 kB view details)

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

regex-2025.9.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (792.4 kB view details)

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

regex-2025.9.1-cp311-cp311-macosx_11_0_arm64.whl (286.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

regex-2025.9.1-cp311-cp311-macosx_10_9_x86_64.whl (289.0 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

regex-2025.9.1-cp311-cp311-macosx_10_9_universal2.whl (484.8 kB view details)

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

regex-2025.9.1-cp310-cp310-win_arm64.whl (268.5 kB view details)

Uploaded CPython 3.10Windows ARM64

regex-2025.9.1-cp310-cp310-win_amd64.whl (276.1 kB view details)

Uploaded CPython 3.10Windows x86-64

regex-2025.9.1-cp310-cp310-win32.whl (264.1 kB view details)

Uploaded CPython 3.10Windows x86

regex-2025.9.1-cp310-cp310-musllinux_1_2_x86_64.whl (778.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

regex-2025.9.1-cp310-cp310-musllinux_1_2_s390x.whl (834.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ s390x

regex-2025.9.1-cp310-cp310-musllinux_1_2_ppc64le.whl (844.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ppc64le

regex-2025.9.1-cp310-cp310-musllinux_1_2_aarch64.whl (773.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

regex-2025.9.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (780.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

regex-2025.9.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (789.9 kB view details)

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

regex-2025.9.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (897.3 kB view details)

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

regex-2025.9.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (849.3 kB view details)

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

regex-2025.9.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (780.5 kB view details)

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

regex-2025.9.1-cp310-cp310-macosx_11_0_arm64.whl (286.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

regex-2025.9.1-cp310-cp310-macosx_10_9_x86_64.whl (289.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

regex-2025.9.1-cp310-cp310-macosx_10_9_universal2.whl (484.8 kB view details)

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

regex-2025.9.1-cp39-cp39-win_arm64.whl (268.5 kB view details)

Uploaded CPython 3.9Windows ARM64

regex-2025.9.1-cp39-cp39-win_amd64.whl (276.2 kB view details)

Uploaded CPython 3.9Windows x86-64

regex-2025.9.1-cp39-cp39-win32.whl (264.1 kB view details)

Uploaded CPython 3.9Windows x86

regex-2025.9.1-cp39-cp39-musllinux_1_2_x86_64.whl (778.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

regex-2025.9.1-cp39-cp39-musllinux_1_2_s390x.whl (834.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ s390x

regex-2025.9.1-cp39-cp39-musllinux_1_2_ppc64le.whl (843.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ppc64le

regex-2025.9.1-cp39-cp39-musllinux_1_2_aarch64.whl (773.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

regex-2025.9.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (780.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

regex-2025.9.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (789.5 kB view details)

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

regex-2025.9.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (896.7 kB view details)

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

regex-2025.9.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl (848.9 kB view details)

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

regex-2025.9.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (779.9 kB view details)

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

regex-2025.9.1-cp39-cp39-macosx_11_0_arm64.whl (286.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

regex-2025.9.1-cp39-cp39-macosx_10_9_x86_64.whl (289.0 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

regex-2025.9.1-cp39-cp39-macosx_10_9_universal2.whl (484.8 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1.tar.gz
Algorithm Hash digest
SHA256 88ac07b38d20b54d79e704e38aa3bd2c0f8027432164226bdee201a1c0c9c9ff
MD5 92c398cd30d02f275bda8c64e8792575
BLAKE2b-256 b25a4c63457fbcaf19d138d72b2e9b39405954f98c0349b31c601bfcb151582c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 f46d525934871ea772930e997d577d48c6983e50f206ff7b66d4ac5f8941e993
MD5 a47a4b909b6e3f07c3c18419e6b18182
BLAKE2b-256 cf3e7d7ac6fd085023312421e0d69dfabdfb28e116e513fadbe9afe710c01893

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a1196e530a6bfa5f4bde029ac5b0295a6ecfaaffbfffede4bbaf4061d9455b70
MD5 36308f4b16fbc028ff9f149669868ade
BLAKE2b-256 83bf4bed4d3d0570e16771defd5f8f15f7ea2311edcbe91077436d6908956c4a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 34679a86230e46164c9e0396b56cab13c0505972343880b9e705083cc5b8ec86
MD5 4838dd991780ebb559c1d724397a2075
BLAKE2b-256 8537dc127703a9e715a284cc2f7dbdd8a9776fd813c85c126eddbcbdd1ca5fec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cd4890e184a6feb0ef195338a6ce68906a8903a0f2eb7e0ab727dbc0a3156273
MD5 005a4676385680169222d63ff9300761
BLAKE2b-256 ccae2d4ff915622fabbef1af28387bf71e7f2f4944a348b8460d061e85e29bf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 6b81d7dbc5466ad2c57ce3a0ddb717858fe1a29535c8866f8514d785fdb9fc5b
MD5 6b1cbe89f2d293e7070b26c5b2950c3a
BLAKE2b-256 74fe60c6132262dc36430d51e0c46c49927d113d3a38c1aba6a26c7744c84cf3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 7e786d9e4469698fc63815b8de08a89165a0aa851720eb99f5e0ea9d51dd2b6a
MD5 c9db944dd9076c59acf48e4188e37a34
BLAKE2b-256 332720d8ccb1bee460faaa851e6e7cc4cfe852a42b70caa1dca22721ba19f02f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d936a1db208bdca0eca1f2bb2c1ba1d8370b226785c1e6db76e32a228ffd0ad5
MD5 2e33c11c13e93725cd2c939a1a2fd47e
BLAKE2b-256 13d129e4d1bed514ef2bf3a4ead3cb8bb88ca8af94130239a4e68aa765c35b1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef971ebf2b93bdc88d8337238be4dfb851cc97ed6808eb04870ef67589415171
MD5 24942db85ec4128e8fc3d0d8ef9e3d8a
BLAKE2b-256 3307d1d70835d7d11b7e126181f316f7213c4572ecf5c5c97bdbb969fb1f38a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 4a62d033cd9ebefc7c5e466731a508dfabee827d80b13f455de68a50d3c2543d
MD5 1c871f47b559679bde31f6510f1c2fe2
BLAKE2b-256 54a92321eb3e2838f575a78d48e03c1e83ea61bd08b74b7ebbdeca8abc50fc25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 4f6e935e98ea48c7a2e8be44494de337b57a204470e7f9c9c42f912c414cd6f5
MD5 f61e68fe95c440671187044f2e974b3f
BLAKE2b-256 4688bbb848f719a540fb5997e71310f16f0b33a92c5d4b4d72d4311487fff2a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 74df7c74a63adcad314426b1f4ea6054a5ab25d05b0244f0c07ff9ce640fa597
MD5 7fbf898c156dc623c1130eda792a0156
BLAKE2b-256 cf11f12ecb0cf9ca792a32bb92f758589a84149017467a544f2f6bfb45c0356d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c905d925d194c83a63f92422af7544ec188301451b292c8b487f0543726107ca
MD5 2e1230e29512dbdd1cfc73cd84167692
BLAKE2b-256 afc6b472398116cca7ea5a6c4d5ccd0fc543f7fd2492cb0c48d2852a11972f73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c9527fa74eba53f98ad86be2ba003b3ebe97e94b6eb2b916b31b5f055622ef03
MD5 95bc3d2064e099e142b8da0f7c64ecd1
BLAKE2b-256 f60e92577f197bd2f7652c5e2857f399936c1876978474ecc5b068c6d8a79c86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp314-cp314-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 72fb7a016467d364546f22b5ae86c45680a4e0de6b2a6f67441d22172ff641f1
MD5 066a666454e0ed5a60f7042693543a58
BLAKE2b-256 21b1453cbea5323b049181ec6344a803777914074b9726c9c5dc76749966d12d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 ec329890ad5e7ed9fc292858554d28d58d56bf62cf964faf0aa57964b21155a0
MD5 960d1711f5875e072b99a5c40b4469e4
BLAKE2b-256 248c96d34e61c0e4e9248836bf86d69cb224fd222f270fa9045b24e218b65604

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b38afecc10c177eb34cfae68d669d5161880849ba70c05cbfbe409f08cc939d7
MD5 e9f598ac423e23bfed42da612838e1c4
BLAKE2b-256 83ad931134539515eb64ce36c24457a98b83c1b2e2d45adf3254b94df3735a76

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 3b9a62107a7441b81ca98261808fed30ae36ba06c8b7ee435308806bd53c1ed8
MD5 8c57b9f6b7ae99a556d33508ad6e5428
BLAKE2b-256 b536674672f3fdead107565a2499f3007788b878188acec6d42bc141c5366c2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c2e05dcdfe224047f2a59e70408274c325d019aad96227ab959403ba7d58d2d7
MD5 f8f926c32960e88b723e940155163323
BLAKE2b-256 d1cd5ec76bf626d0d5abdc277b7a1734696f5f3d14fbb4a3e2540665bc305d85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 b84036511e1d2bb0a4ff1aec26951caa2dea8772b223c9e8a19ed8885b32dbac
MD5 18b506267a00b9c581a063358e29c5d4
BLAKE2b-256 cd80b288d3910c41194ad081b9fb4b371b76b0bbfdce93e7709fc98df27b37dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 bf70e18ac390e6977ea7e56f921768002cb0fa359c4199606c7219854ae332e0
MD5 6d14cb607dc534024da0c187063d851c
BLAKE2b-256 8dd5394e3ffae6baa5a9217bbd14d96e0e5da47bb069d0dbb8278e2681a2b938

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4f0b4258b161094f66857a26ee938d3fe7b8a5063861e44571215c44fbf0e5df
MD5 34014dbe02f21a7d1bad6212bf854acc
BLAKE2b-256 fc0e6ad51a55ed4b5af512bb3299a05d33309bda1c1d1e1808fa869a0bed31bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 09a41dc039e1c97d3c2ed3e26523f748e58c4de3ea7a31f95e1cf9ff973fff5a
MD5 d7d02548f6817ecf948b5657d82e711b
BLAKE2b-256 2fd87303ea38911759c1ee30cc5bc623ee85d3196b733c51fd6703c34290a8d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 b0e2f95413eb0c651cd1516a670036315b91b71767af83bc8525350d4375ccba
MD5 7a8bb781408b242258bb7f902397ac49
BLAKE2b-256 fdb882ffbe9c0992c31bbe6ae1c4b4e21269a5df2559102b90543c9b56724c3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 bcb89c02a0d6c2bec9b0bb2d8c78782699afe8434493bfa6b4021cc51503f249
MD5 5ccec4ac2685d63e707a890326eaecf4
BLAKE2b-256 e4262446f2b9585fed61faaa7e2bbce3aca7dd8df6554c32addee4c4caecf24a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8e3f6e3c5a5a1adc3f7ea1b5aec89abfc2f4fbfba55dafb4343cd1d084f715b2
MD5 9d87c9c6b7884154f98a81cfe8618e2d
BLAKE2b-256 0315e8cb403403a57ed316e80661db0e54d7aa2efcd85cb6156f33cc18746922

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22213527df4c985ec4a729b055a8306272d41d2f45908d7bacb79be0fa7a75ad
MD5 def2dbdd7f51534433caa9e28e37f3d7
BLAKE2b-256 c7d8de4a4b57215d99868f1640e062a7907e185ec7476b4b689e2345487c1ff4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c3dc05b6d579875719bccc5f3037b4dc80433d64e94681a0061845bd8863c025
MD5 f8518d97458a8362a5569ac0369028ad
BLAKE2b-256 492e6507a2a85f3f2be6643438b7bd976e67ad73223692d6988eb1ff444106d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 bc6834727d1b98d710a63e6c823edf6ffbf5792eba35d3fa119531349d4142ef
MD5 a4518528dd650a35eee9ceeefb61ba66
BLAKE2b-256 9825b2959ce90c6138c5142fe5264ee1f9b71a0c502ca4c7959302a749407c79

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 ec1efb4c25e1849c2685fa95da44bfde1b28c62d356f9c8d861d4dad89ed56e9
MD5 8cf177a56da34d1f132371b606e1ae81
BLAKE2b-256 bdedea49f324db00196e9ef7fe00dd13c6164d5173dd0f1bbe495e61bb1fb09d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5aba22dfbc60cda7c0853516104724dc904caa2db55f2c3e6e984eb858d3edf3
MD5 2907ba0d3780b1ed30234fdb3782adb1
BLAKE2b-256 92286ba31cce05b0f1ec6b787921903f83bd0acf8efde55219435572af83c350

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 df33f4ef07b68f7ab637b1dbd70accbf42ef0021c201660656601e8a9835de45
MD5 12a3093a38b01a144413e8f27a366565
BLAKE2b-256 4a1b91ee17a3cbf87f81e8c110399279d0e57f33405468f6e70809100f2ff7d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 656563e620de6908cd1c9d4f7b9e0777e3341ca7db9d4383bcaa44709c90281e
MD5 cad3c09439711a8cdd6ab804467c261b
BLAKE2b-256 93fab4c6dbdedc85ef4caec54c817cd5f4418dbfa2453214119f2538082bf666

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 d016b0f77be63e49613c9e26aaf4a242f196cd3d7a4f15898f5f0ab55c9b24d2
MD5 8565d00050a7f2e4f8e00aeff5b768c0
BLAKE2b-256 919d302f8a29bb8a49528abbab2d357a793e2a59b645c54deae0050f8474785b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 4cf09903e72411f4bf3ac1eddd624ecfd423f14b2e4bf1c8b547b72f248b7bf7
MD5 aa4691e8f8b66e0ef6cf60596471497c
BLAKE2b-256 30cf9d686b07bbc5bf94c879cc168db92542d6bc9fb67088d03479fef09ba9d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1e978e5a35b293ea43f140c92a3269b6ab13fe0a2bf8a881f7ac740f5a6ade85
MD5 19352efa87f993e55508aedba8daa71c
BLAKE2b-256 f1aefd10d6ad179910f7a1b3e0a7fde1ef8bb65e738e8ac4fd6ecff3f52252e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 47829ffaf652f30d579534da9085fe30c171fa2a6744a93d52ef7195dc38218b
MD5 59b2b2e5f8dddcecaa644e9013ac500f
BLAKE2b-256 b2025c891bb5fe0691cc1bad336e3a94b9097fbcf9707ec8ddc1dce9f0397289

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 588c161a68a383478e27442a678e3b197b13c5ba51dbba40c1ccb8c4c7bee9e9
MD5 cdc92e12916c5667af5dae885c4e7a42
BLAKE2b-256 5905984edce1411a5685ba9abbe10d42cdd9450aab4a022271f9585539788150

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 a32291add816961aab472f4fad344c92871a2ee33c6c219b6598e98c1f0108f2
MD5 1797710cf4e3e84f42f1f5f2862e8918
BLAKE2b-256 89d071fc49b4f20e31e97f199348b8c4d6e613e7b6a54a90eb1b090c2b8496d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e9dc5991592933a4192c166eeb67b29d9234f9c86344481173d1bc52f73a7104
MD5 d0c47300c9ab82d0c3a6b7e9b5f25c99
BLAKE2b-256 0f74f933a607a538f785da5021acf5323961b4620972e2c2f1f39b6af4b71db7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 10a450cba5cd5409526ee1d4449f42aad38dd83ac6948cbd6d7f71ca7018f7db
MD5 9268d4e9ba3a802bba44303ab6a942db
BLAKE2b-256 d8dcfbf31fc60be317bd9f6f87daa40a8a9669b3b392aa8fe4313df0a39d0722

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 645e88a73861c64c1af558dd12294fb4e67b5c1eae0096a60d7d8a2143a611c7
MD5 4ddfcc92aefa84250ce7cf118f715211
BLAKE2b-256 b525d64543fb7eb41a1024786d518cc57faf1ce64aa6e9ddba097675a0c2f1d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 84a25164bd8dcfa9f11c53f561ae9766e506e580b70279d05a7946510bdd6f6a
MD5 637518626db697ba8acc011224855325
BLAKE2b-256 39efa0372febc5a1d44c1be75f35d7e5aff40c659ecde864d7fa10e138f75e74

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 47d7c2dab7e0b95b95fd580087b6ae196039d62306a592fa4e162e49004b6299
MD5 9011a499b19d8fc3acbed43bf5a9b6a8
BLAKE2b-256 cbbd46fef29341396d955066e55384fb93b0be7d64693842bf4a9a398db6e555

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d34b901f6f2f02ef60f4ad3855d3a02378c65b094efc4b80388a3aeb700a5de7
MD5 25f90ab6ad5e4d3988223591d9bb4921
BLAKE2b-256 ade08adc550d7169df1d6b9be8ff6019cda5291054a0107760c2f30788b6195f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 49865e78d147a7a4f143064488da5d549be6bfc3f2579e5044cac61f5c92edd4
MD5 8d01bdeec83ba1a53cf98253daed805e
BLAKE2b-256 47661ef1081c831c5b611f6f55f6302166cfa1bc9574017410ba5595353f846a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a12f59c7c380b4fcf7516e9cbb126f95b7a9518902bcf4a852423ff1dcd03e6a
MD5 be74214a55ac40bbabc0672f38587345
BLAKE2b-256 90c25b6f2bce6ece5f8427c718c085eca0de4bbb4db59f54db77aa6557aef3e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 6c0226fb322b82709e78c49cc33484206647f8a39954d7e9de1567f5399becd0
MD5 87ba9dddaf9d565cbedbd31615c53067
BLAKE2b-256 1ef9878f4fc92c87e125e27aed0f8ee0d1eced9b541f404b048f66f79914475a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 94f6cff6f7e2149c7e6499a6ecd4695379eeda8ccbccb9726e8149f2fe382e92
MD5 4b4948cff9d1c9f288f184754634fb7b
BLAKE2b-256 42de2b45f36ab20da14eedddf5009d370625bc5942d9953fa7e5037a32d66843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e1cb40406f4ae862710615f9f636c1e030fd6e6abe0e0f65f6a695a2721440c6
MD5 3571cfd8a426807bc38602adec05961b
BLAKE2b-256 1dfa33f6fec4d41449fea5f62fdf5e46d668a1c046730a7f4ed9f478331a8e3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91892a7a9f0a980e4c2c85dd19bc14de2b219a3a8867c4b5664b9f972dcc0c78
MD5 81dee9d84e1594c889bacb3d2d6bef2b
BLAKE2b-256 8aa7a470e7bc8259c40429afb6d6a517b40c03f2f3e455c44a01abc483a1c512

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 ca3affe8ddea498ba9d294ab05f5f2d3b5ad5d515bc0d4a9016dd592a03afe52
MD5 34510564eba2521fa98f05f6d5b987da
BLAKE2b-256 d698155f914b4ea6ae012663188545c4f5216c11926d09b817127639d618b003

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 d89f1bbbbbc0885e1c230f7770d5e98f4f00b0ee85688c871d10df8b184a6323
MD5 84f484e1c856a2ccf24455575952343b
BLAKE2b-256 fc24b7430cfc6ee34bbb3db6ff933beb5e7692e5cc81e8f6f4da63d353566fb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6aeff21de7214d15e928fb5ce757f9495214367ba62875100d4c18d293750cc1
MD5 bb387fcfb96aa4b39e3842d112eda35f
BLAKE2b-256 d1019b5c6dd394f97c8f2c12f6e8f96879c9ac27292a718903faf2e27a0c09f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea8267fbadc7d4bd7c1301a50e85c2ff0de293ff9452a1a9f8d82c6cafe38179
MD5 bbe94e03e8aa313d455543e5c26d839b
BLAKE2b-256 eb7d7dc0c6efc8bc93cd6e9b947581f5fde8a5dbaa0af7c4ec818c5729fdc807

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 67a0295a3c31d675a9ee0238d20238ff10a9a2fdb7a1323c798fc7029578b15c
MD5 49683bbbe2d37f91aa3e4d6a924ba228
BLAKE2b-256 c2bd27e73e92635b6fbd51afc26a414a3133243c662949cd1cda677fe7bb09bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e5bcf112b09bfd3646e4db6bf2e598534a17d502b0c01ea6550ba4eca780c5e6
MD5 cc382540d78ae448c237e9250ed0b11a
BLAKE2b-256 064df741543c0c59f96c6625bc6c11fea1da2e378b7d293ffff6f318edc0ce14

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 a874a61bb580d48642ffd338570ee24ab13fa023779190513fcacad104a6e251
MD5 66741db8375c9fba700885634e1a7e7e
BLAKE2b-256 d33a77d7718a2493e54725494f44da1a1e55704743dc4b8fabe5b0596f7b8014

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 94533e32dc0065eca43912ee6649c90ea0681d59f56d43c45b5bcda9a740b3dd
MD5 90f2ca415a7ea15f9a7b9156b1f5dfbc
BLAKE2b-256 9773fb82faaf0375aeaa1bb675008246c79b6779fa5688585a35327610ea0e2e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 9627e887116c4e9c0986d5c3b4f52bcfe3df09850b704f62ec3cbf177a0ae374
MD5 55bf1d4c24e9c7ac5f578923d8ac129d
BLAKE2b-256 3edf72072acb370ee8577c255717f8a58264f1d0de40aa3c9e6ebd5271cac633

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1ec2bd3bdf0f73f7e9f48dca550ba7d973692d5e5e9a90ac42cc5f16c4432d8b
MD5 22de49f415c7501a7dc8a90a8f52f7f8
BLAKE2b-256 018f86a3e0aaa89295d2a3445bb238e56369963ef6b02a5b4aa3362f4e687413

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 7383efdf6e8e8c61d85e00cfb2e2e18da1a621b8bfb4b0f1c2747db57b942b8f
MD5 27bc1a42ab3a19c3df6fc57b220f5e92
BLAKE2b-256 fd92d89743b089005cae4cb81cc2fe177e180b7452e60f29de53af34349640f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 4bcdff370509164b67a6c8ec23c9fb40797b72a014766fdc159bb809bd74f7d8
MD5 0b93df2bec3ce1c614d1d252a22343f6
BLAKE2b-256 39e89d6b9bd43998268a9de2f35602077519cacc9cb149f7381758cf8f502ba7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fcdeb38de4f7f3d69d798f4f371189061446792a84e7c92b50054c87aae9c07c
MD5 c1968a5d5b7f8d99f6628e8fbfab2165
BLAKE2b-256 acac56176caa86155c14462531eb0a4ddc450d17ba8875001122b3b7c0cb01bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 113d5aa950f428faf46fd77d452df62ebb4cc6531cb619f6cc30a369d326bfbd
MD5 ada615396e16b220531a303651b9d141
BLAKE2b-256 479f7b2f29c8f8b698eb44be5fc68e8b9c8d32e99635eac5defc98de114e9f35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c3b96ed0223b32dbdc53a83149b6de7ca3acd5acd9c8e64b42a166228abe29c
MD5 d26e833d650abfa45166bb5dd4418c2c
BLAKE2b-256 9eb30f9f7766e980b900df0ba9901b52871a2e4203698fb35cdebd219240d5f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 67a74456f410fe5e869239ee7a5423510fe5121549af133809d9591a8075893f
MD5 546900fd9892830831ef2e0824d61417
BLAKE2b-256 8c8d2b3067506838d02096bf107beb129b2ce328cdf776d6474b7f542c0a7bfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 e71bceb3947362ec5eabd2ca0870bb78eae4edfc60c6c21495133c01b6cd2df4
MD5 a20c3ef57469bfec10d9119b05b3e786
BLAKE2b-256 f60505884594a9975a29597917bbdd6837f7b97e8ac23faf22d628aa781e58f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d9914fe1040874f83c15fcea86d94ea54091b0666eab330aaab69e30d106aabe
MD5 5853f5c33635f0448a5c7ec9e6ac1a2a
BLAKE2b-256 6ecfd89aecaf17e999ab11a3ef73fc9ab8b64f4e156f121250ef84340b35338d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d49dc84e796b666181de8a9973284cad6616335f01b52bf099643253094920fc
MD5 003dab9809d28f5d80e58a84e5a4e6c1
BLAKE2b-256 3cb0441afadd0a6ffccbd58a9663e5bdd182daa237893e5f8ceec6ff9df4418a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8c2ff5c01d5e47ad5fc9d31bcd61e78c2fa0068ed00cab86b7320214446da766
MD5 4580e5400c64862e2810c22ddc427c6b
BLAKE2b-256 05de97957618a774c67f892609eee2fafe3e30703fbbba66de5e6b79d7196dbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c5aa2a6a73bf218515484b36a0d20c6ad9dc63f6339ff6224147b0e2c095ee55
MD5 117d1485485253072301a4758db3a080
BLAKE2b-256 46c1ed9ef923156105a78aa004f9390e5dd87eadc29f5ca8840f172cadb638de

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 5d74b557cf5554001a869cda60b9a619be307df4d10155894aeaad3ee67c9899
MD5 47319de23b155cdc8737526f1e9dd4b6
BLAKE2b-256 604286a45b36b0d8f37388485a2c93d0f3c571732ac4e17b92d8ccd5da53b792

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 43ebc77a7dfe36661192afd8d7df5e8be81ec32d2ad0c65b536f66ebfec3dece
MD5 df1dd90686a7d8ae5684323f13aab039
BLAKE2b-256 ff7e4ef3cf970b4c7ef9abee4c5a42f3405a452e5abe21095ee36f9a3a83af9d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2025.9.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 d161bfdeabe236290adfd8c7588da7f835d67e9e7bf2945f1e9e120622839ba6
MD5 c53e1ffa131a3e7297dc9bd9fa0fd618
BLAKE2b-256 2028c6c94f642c115e72142e8404464835f03dee55266a158455aeb8216d6d4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6ff623271e0b0cc5a95b802666bbd70f17ddd641582d65b10fb260cc0c003529
MD5 f11b77aa2cc2e9544a6e06a7cb3b6862
BLAKE2b-256 1727f1ca20401df0544a627188fede42ef723b7d88fed8364b0d80fa9833bb84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-musllinux_1_2_s390x.whl
Algorithm Hash digest
SHA256 a90014d29cb3098403d82a879105d1418edbbdf948540297435ea6e377023ea7
MD5 a2386a308bc3acfc748dd8055e1620ae
BLAKE2b-256 d59a652095a5df5a8cd6b550280dc4b885f06beb68e2dc8728b380639b40446d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-musllinux_1_2_ppc64le.whl
Algorithm Hash digest
SHA256 0aeb0fe80331059c152a002142699a89bf3e44352aee28261315df0c9874759b
MD5 ac241bc7cb2eecb7c9db6e72588a27aa
BLAKE2b-256 4511d2ca4dccec797f9325cfae0cfff8ee2977e1d5db43296ed949f8c63b6db0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6d40e6b49daae9ebbd7fa4e600697372cba85b826592408600068e83a3c47211
MD5 b1fbc02eb42340fce7ef627714de667d
BLAKE2b-256 2ce374a9da339f043006a1c0e0daae143c2d8b70e8987da3c967dbb8b6e8c9d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a34ef82216189d823bc82f614d1031cb0b919abef27cecfd7b07d1e9a8bdeeb4
MD5 405ff5ccfaace8bac5a38bebb3e13e53
BLAKE2b-256 825c207422b3a2c3923eb09a1e807435effcbd8b756cd8ece24c153d525463d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff62a3022914fc19adaa76b65e03cf62bc67ea16326cbbeb170d280710a7d719
MD5 44c9b876fd68742b0599a786253d4180
BLAKE2b-256 4a5625480407a452198414a68d6d1f4f9920652810ba9f2c7f6279e5bd9b15ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 6f1dae2cf6c2dbc6fd2526653692c144721b3cf3f769d2a3c3aa44d0f38b9a58
MD5 4d990c9e3fe94396ea94edf3a39b448d
BLAKE2b-256 d201c6c2bc65e97387523742c54daec1384a50d2575d1189e844e4e320e145e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Algorithm Hash digest
SHA256 aa88d5a82dfe80deaf04e8c39c8b0ad166d5d527097eb9431cb932c44bf88715
MD5 9cea88a3f1f4bef82aec867107b80d71
BLAKE2b-256 690aa4bed3424beefbf8322b8b581aa2e2a65cbfe358d968f58a2ab910d62927

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b2b3ad150c6bc01a8cd5030040675060e2adbe6cbc50aadc4da42c6d32ec266e
MD5 d1ec522b1450a1ae0f96a7a5be55c4ef
BLAKE2b-256 e96e199003d956dac19ddaebb2ef3c068379918539a497dd4d4eb5561a1c5e3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0fa9a7477288717f42dbd02ff5d13057549e9a8cdb81f224c313154cc10bab52
MD5 e9a784f4bcd835872dc63b34fe7f63a2
BLAKE2b-256 88ad0b9316cfe91d8a2917fbcd8cb7c990051745b5852f9f3088b93b4267fe68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d6b046b0a01cb713fd53ef36cb59db4b0062b343db28e83b52ac6aa01ee5b368
MD5 76c32b7b87eb1fbbfabaeeddb08ad209
BLAKE2b-256 be8d88539f6ca5967022942ab64f2038a037b344db636c80852d2b4b147f6b1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2025.9.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a13d20007dce3c4b00af5d84f6c191ed1c0f70928c6d9b6cd7b8d2f125df7f46
MD5 e98104653a489687679d6cfc2d5dacba
BLAKE2b-256 ae283f2b211686160f15ccf2ecd770e25c588fb776332956006e02ab93982a5f

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