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.

Note

The re module’s behaviour with zero-width matches changed in Python 3.7, and this module follows that behaviour when compiled for Python 3.7.

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 15.1.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?

# Python 3.7 and later
>>> regex.sub('.*', 'x', 'test')
'xx'
>>> regex.sub('.*?', '|', 'test')
'|||||||||'

# Python 3.6 and earlier
>>> regex.sub('(?V0).*', 'x', 'test')
'x'
>>> regex.sub('(?V1).*', 'x', 'test')
'xx'
>>> regex.sub('(?V0).*?', '|', 'test')
'|t|e|s|t|'
>>> regex.sub('(?V1).*?', '|', '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-2024.5.10.tar.gz (394.8 kB view details)

Uploaded Source

Built Distributions

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

regex-2024.5.10-cp312-cp312-win_amd64.whl (268.5 kB view details)

Uploaded CPython 3.12Windows x86-64

regex-2024.5.10-cp312-cp312-win32.whl (257.6 kB view details)

Uploaded CPython 3.12Windows x86

regex-2024.5.10-cp312-cp312-musllinux_1_1_x86_64.whl (759.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

regex-2024.5.10-cp312-cp312-musllinux_1_1_s390x.whl (779.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ s390x

regex-2024.5.10-cp312-cp312-musllinux_1_1_ppc64le.whl (775.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ppc64le

regex-2024.5.10-cp312-cp312-musllinux_1_1_i686.whl (742.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

regex-2024.5.10-cp312-cp312-musllinux_1_1_aarch64.whl (751.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

regex-2024.5.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (789.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

regex-2024.5.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (814.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

regex-2024.5.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (829.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

regex-2024.5.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (786.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

regex-2024.5.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (777.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

regex-2024.5.10-cp312-cp312-macosx_11_0_arm64.whl (278.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

regex-2024.5.10-cp312-cp312-macosx_10_9_x86_64.whl (282.4 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

regex-2024.5.10-cp312-cp312-macosx_10_9_universal2.whl (470.7 kB view details)

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

regex-2024.5.10-cp311-cp311-win_amd64.whl (269.0 kB view details)

Uploaded CPython 3.11Windows x86-64

regex-2024.5.10-cp311-cp311-win32.whl (257.1 kB view details)

Uploaded CPython 3.11Windows x86

regex-2024.5.10-cp311-cp311-musllinux_1_1_x86_64.whl (753.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

regex-2024.5.10-cp311-cp311-musllinux_1_1_s390x.whl (776.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ s390x

regex-2024.5.10-cp311-cp311-musllinux_1_1_ppc64le.whl (770.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ppc64le

regex-2024.5.10-cp311-cp311-musllinux_1_1_i686.whl (738.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

regex-2024.5.10-cp311-cp311-musllinux_1_1_aarch64.whl (750.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

regex-2024.5.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (785.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

regex-2024.5.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (810.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

regex-2024.5.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (823.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

regex-2024.5.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (784.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

regex-2024.5.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (772.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

regex-2024.5.10-cp311-cp311-macosx_11_0_arm64.whl (278.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

regex-2024.5.10-cp311-cp311-macosx_10_9_x86_64.whl (281.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

regex-2024.5.10-cp311-cp311-macosx_10_9_universal2.whl (469.7 kB view details)

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

regex-2024.5.10-cp310-cp310-win_amd64.whl (269.0 kB view details)

Uploaded CPython 3.10Windows x86-64

regex-2024.5.10-cp310-cp310-win32.whl (257.1 kB view details)

Uploaded CPython 3.10Windows x86

regex-2024.5.10-cp310-cp310-musllinux_1_1_x86_64.whl (744.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

regex-2024.5.10-cp310-cp310-musllinux_1_1_s390x.whl (768.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ s390x

regex-2024.5.10-cp310-cp310-musllinux_1_1_ppc64le.whl (764.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ppc64le

regex-2024.5.10-cp310-cp310-musllinux_1_1_i686.whl (731.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

regex-2024.5.10-cp310-cp310-musllinux_1_1_aarch64.whl (744.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

regex-2024.5.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (774.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

regex-2024.5.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (800.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

regex-2024.5.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (815.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

regex-2024.5.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (774.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

regex-2024.5.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (690.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

regex-2024.5.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (763.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

regex-2024.5.10-cp310-cp310-macosx_11_0_arm64.whl (278.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

regex-2024.5.10-cp310-cp310-macosx_10_9_x86_64.whl (281.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

regex-2024.5.10-cp310-cp310-macosx_10_9_universal2.whl (469.7 kB view details)

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

regex-2024.5.10-cp39-cp39-win_amd64.whl (269.0 kB view details)

Uploaded CPython 3.9Windows x86-64

regex-2024.5.10-cp39-cp39-win32.whl (257.2 kB view details)

Uploaded CPython 3.9Windows x86

regex-2024.5.10-cp39-cp39-musllinux_1_1_x86_64.whl (744.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

regex-2024.5.10-cp39-cp39-musllinux_1_1_s390x.whl (768.3 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ s390x

regex-2024.5.10-cp39-cp39-musllinux_1_1_ppc64le.whl (763.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ppc64le

regex-2024.5.10-cp39-cp39-musllinux_1_1_i686.whl (730.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

regex-2024.5.10-cp39-cp39-musllinux_1_1_aarch64.whl (743.7 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

regex-2024.5.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (773.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

regex-2024.5.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (799.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

regex-2024.5.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (814.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

regex-2024.5.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

regex-2024.5.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (689.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

regex-2024.5.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (762.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

regex-2024.5.10-cp39-cp39-macosx_11_0_arm64.whl (278.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

regex-2024.5.10-cp39-cp39-macosx_10_9_x86_64.whl (281.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

regex-2024.5.10-cp39-cp39-macosx_10_9_universal2.whl (469.7 kB view details)

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

regex-2024.5.10-cp38-cp38-win_amd64.whl (269.0 kB view details)

Uploaded CPython 3.8Windows x86-64

regex-2024.5.10-cp38-cp38-win32.whl (257.1 kB view details)

Uploaded CPython 3.8Windows x86

regex-2024.5.10-cp38-cp38-musllinux_1_1_x86_64.whl (752.5 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

regex-2024.5.10-cp38-cp38-musllinux_1_1_s390x.whl (771.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ s390x

regex-2024.5.10-cp38-cp38-musllinux_1_1_ppc64le.whl (769.1 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ppc64le

regex-2024.5.10-cp38-cp38-musllinux_1_1_i686.whl (738.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

regex-2024.5.10-cp38-cp38-musllinux_1_1_aarch64.whl (748.6 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

regex-2024.5.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (777.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

regex-2024.5.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (802.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

regex-2024.5.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (818.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

regex-2024.5.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (777.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

regex-2024.5.10-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (695.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

regex-2024.5.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (764.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

regex-2024.5.10-cp38-cp38-macosx_11_0_arm64.whl (278.3 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

regex-2024.5.10-cp38-cp38-macosx_10_9_x86_64.whl (281.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

regex-2024.5.10-cp38-cp38-macosx_10_9_universal2.whl (469.8 kB view details)

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

File details

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

File metadata

  • Download URL: regex-2024.5.10.tar.gz
  • Upload date:
  • Size: 394.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10.tar.gz
Algorithm Hash digest
SHA256 304e7e2418146ae4d0ef0e9ffa28f881f7874b45b4994cc2279b21b6e7ae50c8
MD5 c2c995cc8fb698a3464a07ad2cca7a2f
BLAKE2b-256 24ca2477acbf4d4abe7b2efaa775d5e96dfa236982671bd01a4172e81278d411

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.5.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 268.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3799e36d60a35162bb35b2246d8bb012192b7437dff807ef79c14e7352706306
MD5 c2fe053138a3ebd623867d98f7963181
BLAKE2b-256 1df9c47e3e320b12bb09f0420d7098b6c433b7ea045783b8db77edf4f6dc9fbd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.5.10-cp312-cp312-win32.whl
  • Upload date:
  • Size: 257.6 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 2f30a5ab8902f93930dc6f627c4dd5da2703333287081c85cace0fc6e21c25af
MD5 d007b232b5b230bc6d849166d1b593f1
BLAKE2b-256 a8a035999c485527782be5f1eec4cb384ab0d5cc5f90a0d9e8ca882ffffb4e18

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5253dcb0bfda7214523de58b002eb0090cb530d7c55993ce5f6d17faf953ece7
MD5 bf50a0bd108755352028810865152b27
BLAKE2b-256 abaf61329e6f6ecad32307c0035272be7bbdf38d7ca400505c54f1c617aa628f

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 571452362d552de508c37191b6abbbb660028b8b418e2d68c20779e0bc8eaaa8
MD5 b4527ff273909cb4598e6ed78c8c0307
BLAKE2b-256 c6263b268f22f01c17625d867d4aa89e5e9aa690fb7a4461b6b121ca24a9a7a3

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 e91b1976358e17197157b405cab408a5f4e33310cda211c49fc6da7cffd0b2f0
MD5 759b1dcc584c15492c49b39f0ab8b739
BLAKE2b-256 4303f3e1c0906265566a5f13c50c11a0f6b50721714ac7df1645c45610e359d3

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 cd832bd9b6120d6074f39bdfbb3c80e416848b07ac72910f1c7f03131a6debc3
MD5 d8605386f511c487c9a09264fd7578fa
BLAKE2b-256 bda29e2041326832d74582c53c69fcac896f61641d97ecd77f1c2285cc04c71a

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 62b5f7910b639f3c1d122d408421317c351e213ca39c964ad4121f27916631c6
MD5 28a47fc9573b5510541d49e3d7c397fa
BLAKE2b-256 194395e7459fac764331c7eee62966c38ebb2f5b83f53da862311127752feca9

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba034c8db4b264ef1601eb33cd23d87c5013b8fb48b8161debe2e5d3bd9156b0
MD5 69e325f6d8ec03d33b66a26501c5aab9
BLAKE2b-256 8595afe6e9004fab229da6d92eebd947c67495c30c905be14e477845eb94be6d

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 50e7e96a527488334379e05755b210b7da4a60fc5d6481938c1fa053e0c92184
MD5 82f737957bfe2878d01a24d09bae293a
BLAKE2b-256 bee1e979c6a5400be18518c2149efe991b183169b32b29e263a91eaf46aa9f49

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 aab65121229c2ecdf4a31b793d99a6a0501225bd39b616e653c87b219ed34a49
MD5 00a6650e5bf80f710fc127be47cdce4a
BLAKE2b-256 e7f7125c23d371a26723f506d2d56eda9a4ea96637bbaa641f791c5ac134da38

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0faecb6d5779753a6066a3c7a0471a8d29fe25d9981ca9e552d6d1b8f8b6a594
MD5 b8e2a2ca323c53d895d6f61b4b776e82
BLAKE2b-256 15286b087e1cf6d1f8887db76f5fee537d288414ed17a3c1faaa8b57c6c44550

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 031219782d97550c2098d9a68ce9e9eaefe67d2d81d8ff84c8354f9c009e720c
MD5 a41d21b4b0f9c7ee2e25833de4568a5a
BLAKE2b-256 3d1824af78bdd7d2e61d3a011a56e5052d8599236b295bd186f9f9489418a596

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c46a76a599fcbf95f98755275c5527304cc4f1bb69919434c1e15544d7052910
MD5 447a564df4d3fb24e2d3d801f6883afb
BLAKE2b-256 a5e08474afcd7c66fb914dfea4758aa535d732410266d4ee5d2e8293ddb5db30

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4fad420b14ae1970a1f322e8ae84a1d9d89375eb71e1b504060ab2d1bfe68f3c
MD5 ce7ff98330520452953fbed6a89a7c24
BLAKE2b-256 50a305291b7d29121042feb7a4a5560e359d8b2f8961a1b462a85034f7844253

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 14905ed75c7a6edf423eb46c213ed3f4507c38115f1ed3c00f4ec9eafba50e58
MD5 a22dbc9b71f5223d710a07fa569dd6e5
BLAKE2b-256 6b5f021bd7d3c6132ab280a38305a62f2102dad8963f44b56e00adab093586ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.5.10-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 269.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 12446827f43c7881decf2c126762e11425de5eb93b3b0d8b581344c16db7047a
MD5 4d78305f134f96df3a54aca5dc61cf1c
BLAKE2b-256 47348dd49be3224d010479c80b5e758a5a25322cb2d082eb7ecb0e9e29738dc4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.5.10-cp311-cp311-win32.whl
  • Upload date:
  • Size: 257.1 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 236cace6c1903effd647ed46ce6dd5d76d54985fc36dafc5256032886736c85d
MD5 0adf671ee352c59eff9bffefe2739559
BLAKE2b-256 2ec99f0b7cf7e9380d6b69cf7cd46d754975f6778948070bbb64447491d74500

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1a3903128f9e17a500618e80c68165c78c741ebb17dd1a0b44575f92c3c68b02
MD5 20986ff9c7fecd143c532d42cfb406de
BLAKE2b-256 757c4fe0733912266dbee51d490202b907ffb8771b26490a7fc444898f7f2096

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 91b53dea84415e8115506cc62e441a2b54537359c63d856d73cb1abe05af4c9a
MD5 44a14517209ae1f48cf7c86f9a2ea950
BLAKE2b-256 cec46013a191791018d9987ef9dcae31b4ffee82c0772f1b461abcee542de12a

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 504b5116e2bd1821efd815941edff7535e93372a098e156bb9dffde30264e798
MD5 9c120760645d500bd98a5edb0f28805f
BLAKE2b-256 86c91e5a4b7f12da4e284518cfb095af1d0823ec33c8c1dbb211977ceb886659

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 7dda3091838206969c2b286f9832dff41e2da545b99d1cfaea9ebd8584d02708
MD5 1a891bf1205163f44b0b99001cb35f0f
BLAKE2b-256 9a9662912dad3565c80c6b729f5fb154a046f0cfcebf736634e89f0b28aec168

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 fa9335674d7c819674467c7b46154196c51efbaf5f5715187fd366814ba3fa39
MD5 65a8381990fa58bc12beb6646109de75
BLAKE2b-256 b9531d613941762e252ba9703f99366e38e36f3017062f8359cbe368893bfa55

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7467ad8b0eac0b28e52679e972b9b234b3de0ea5cee12eb50091d2b68145fe36
MD5 0f1c52b04a3887d6a8beb5f4e0f8da9a
BLAKE2b-256 a406c5d4eb73c1f1335a2447b1de9411014e3bb12331c8c32eaa26a4ae318e54

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 8c6c71cf92b09e5faa72ea2c68aa1f61c9ce11cb66fdc5069d712f4392ddfd00
MD5 448f95bc29acf4f44fc71c96d0504a6c
BLAKE2b-256 db6158142e9e8124860ee1c3b3dcb8bffe090cde3049514705823db28ce5606e

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0a9f89d7db5ef6bdf53e5cc8e6199a493d0f1374b3171796b464a74ebe8e508a
MD5 86c0c486ca24fb72b1bb363b1650679f
BLAKE2b-256 e9ac5c8da8873f4f7a49f59a604f180415cb8b3b4dc65a8012258478a5161475

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 33d19f0cde6838c81acffff25c7708e4adc7dd02896c9ec25c3939b1500a1778
MD5 ea9e2daef857226aaac86a0f8be692bd
BLAKE2b-256 ff2dcc2d0d044ea26129863c1100f937648a99180b7aebc1444ad881eb01e3e5

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bc0db93ad039fc2fe32ccd3dd0e0e70c4f3d6e37ae83f0a487e1aba939bd2fbd
MD5 0d2fcd8842fcd7c6dab4d6d3b88cbed3
BLAKE2b-256 760de827f20590a061074874967ac96687f52a527c632dc842b3cca185353468

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad45f3bccfcb00868f2871dce02a755529838d2b86163ab8a246115e80cfb7d6
MD5 5f2b68dda2412ec31d7946ccf48c2afc
BLAKE2b-256 da343f219ae001d3f52d1567dbeae7ff8d9f08696006989d59ace7cc7c63800c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 45cc13d398b6359a7708986386f72bd156ae781c3e83a68a6d4cee5af04b1ce9
MD5 da045e89edd5d8ba620ce86e7f375353
BLAKE2b-256 6c99152009b8f39e38c03dafa07ffdbc1027981dc2249d42919ed54eaeb9450b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 bf9596cba92ce7b1fd32c7b07c6e3212c7eed0edc271757e48bfcd2b54646452
MD5 70842f8baf36f914d2920627d9dbdbd3
BLAKE2b-256 813ba85f38c9e622ca518c1bcd5ceb6484ffafb0332f5d8ea7eecbdea53d6d1c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.5.10-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 269.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 903350bf44d7e4116b4d5898b30b15755d61dcd3161e3413a49c7db76f0bee5a
MD5 097f2a65cc52dbdb51aa7c2bf8937d15
BLAKE2b-256 1432da3957bcf0747b918ee9df6c9ed3cbe0c01f00360cddcd6b92982cc1b532

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.5.10-cp310-cp310-win32.whl
  • Upload date:
  • Size: 257.1 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 9a8625849387b9d558d528e263ecc9c0fbde86cfa5c2f0eef43fff480ae24d71
MD5 8304cf6b6f2835a98d9fd8ab5cb90d2a
BLAKE2b-256 0bd49c1ca73a9196ae1f1567b99761c146133b64cd14bf81c7121a0eb0e4f9fc

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 42be5de7cc8c1edac55db92d82b68dc8e683b204d6f5414c5a51997a323d7081
MD5 b6b320b3b9db81741b98b271b6f64272
BLAKE2b-256 b664114d7f33988c2be6fc8600082a632f388aaad6b9eb012bad2e6912d19ebc

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 70364a097437dd0a90b31cd77f09f7387ad9ac60ef57590971f43b7fca3082a5
MD5 3c06dde73b1e4871fdda789302af0067
BLAKE2b-256 fee76dfe377331b158386375183fd8e82b294b466cf64ca0036a6733bc3c75fb

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 560278c9975694e1f0bc50da187abf2cdc1e4890739ea33df2bc4a85eeef143e
MD5 fed26917ea053fb3ad7b3db8b25f9c28
BLAKE2b-256 85b9d043eb17a6cb7c75d81bcbc717bc02fbd4c07e3001110c9f3c370b0de12c

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 44b3267cea873684af022822195298501568ed44d542f9a2d9bebc0212e99069
MD5 48c0fcaf7d2d86a6bd3a4f82c7349c70
BLAKE2b-256 f9121f8b51c2de4637badfccd225321949f1b63c971ccc2b471197e0a4f5ac54

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 161a206c8f3511e2f5fafc9142a2cc25d7fe9a1ec5ad9b4ad2496a7c33e1c5d2
MD5 46fe3e7a59b27f54edee6e355737b47c
BLAKE2b-256 6407e135ee254f7a760688ae158509ffb511099f2674b57e3be88c13172034e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 951be1eae7b47660412dc4938777a975ebc41936d64e28081bf2e584b47ec246
MD5 73a5e00dbd8736ecfe5f36ba4b097820
BLAKE2b-256 639dcadccd37b54536b65128dc648ee69051bfa0dfb6d8a96459f5bf4b29602c

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 160ba087232c5c6e2a1e7ad08bd3a3f49b58c815be0504d8c8aacfb064491cd8
MD5 28f56fae44ae15858d8433118f5c3671
BLAKE2b-256 ddeb503a92d063d8cad0b65f3d16f06a5bf283511a0e4a2df4c520171511006d

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 193b7c6834a06f722f0ce1ba685efe80881de7c3de31415513862f601097648c
MD5 d3026afa81a006b74e1b016ef28f941c
BLAKE2b-256 96f5d98d673f3489941fe362b29df8477e4dbe379b662f53822a1b2d39e8acf2

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 534efd2653ebc4f26fc0e47234e53bf0cb4715bb61f98c64d2774a278b58c846
MD5 27e2f83a6c9fb9813d2b9d6633a055e9
BLAKE2b-256 540fe52aeb45ade2a576dfeb1deaa42630e87747c9c4bd925437db8e6d9bef51

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9e6d4d6ae1827b2f8c7200aaf7501c37cf3f3896c86a6aaf2566448397c823dd
MD5 3f9bfe86c35faa04f3e462f4d8ccc3c2
BLAKE2b-256 971c7482a681429b3549994ea852267a62f92ab4546b0e110dbdf9c7fa3c1d3d

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d8a0f0ab5453e409586b11ebe91c672040bc804ca98d03a656825f7890cbdf88
MD5 e198f0e049e60aa083b22cf7aad2f710
BLAKE2b-256 64c7de744693b494b700e9c56b27d86b080ffe84160d7cc1b5735077f0182de9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32e5f3b8e32918bfbdd12eca62e49ab3031125c454b507127ad6ecbd86e62fca
MD5 89f61d8a652302c61f2d029fcac48ac1
BLAKE2b-256 4136494b21d72696a1b1d10ec3cbccf11ba864795c53f5b7be516cfc1a11d90d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1d5bd666466c8f00a06886ce1397ba8b12371c1f1c6d1bef11013e9e0a1464a8
MD5 44e503fc1c82a99e2848989ae802b485
BLAKE2b-256 09b7aa46e5ddee1c3a0d10b9910632e9a9689cf9fe0433544d6e3a6e928e0199

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 eda3dd46df535da787ffb9036b5140f941ecb91701717df91c9daf64cabef953
MD5 f7c70232609b20af9cea6783e457130e
BLAKE2b-256 03c7fe419ae55f255435b6339dc9b79acb92c23fdc7e8bfd11a88bfe65d12850

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.5.10-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 269.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0ce56a923f4c01d7568811bfdffe156268c0a7aae8a94c902b92fe34c4bde785
MD5 aeb87e076197f5b7268a3224be1cf228
BLAKE2b-256 09e075c1c67679d12a70f56855d8895c6a32f379bc8e1348aedbdb52c390fa95

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.5.10-cp39-cp39-win32.whl
  • Upload date:
  • Size: 257.2 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 249fbcee0a277c32a3ce36d8e36d50c27c968fdf969e0fbe342658d4e010fbc8
MD5 74da7421a10f930167f097d59ef35f99
BLAKE2b-256 8d99cdf7fbe2193be1e3efb58125d4cf7819e5a12dbc7f97f9fdb2593ab108c4

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cfa6d61a76c77610ba9274c1a90a453062bdf6887858afbe214d18ad41cf6bde
MD5 681ef4528b027ea57c62dece3111c531
BLAKE2b-256 3d2e7d5ce7a8a077881625f60664679338dd3d6d4a0e24e13c1ca523eec7b524

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 f03b1dbd4d9596dd84955bb40f7d885204d6aac0d56a919bb1e0ff2fb7e1735a
MD5 eb924faa5c68bacd67043a5431f96c99
BLAKE2b-256 2dfae8c60c04b0fa482f0d86fdbb12fb8f26a1a76105ee6094c797210a940ac1

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 334b79ce9c08f26b4659a53f42892793948a613c46f1b583e985fd5a6bf1c149
MD5 7a36203b31e692b98df3d5703164e685
BLAKE2b-256 63c018e15c2f39b1d1d83fa9edc089aeac7aafc08d7ca62f388cf2d4544a727c

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 169fd0acd7a259f58f417e492e93d0e15fc87592cd1e971c8c533ad5703b5830
MD5 33a735f2c2802e81043c322972570b0d
BLAKE2b-256 54f535debc5bcff37e140c848a67ed0a64cfcd22127887f8d6a68cbc60ebb818

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 4e7eaf9df15423d07b6050fb91f86c66307171b95ea53e2d87a7993b6d02c7f7
MD5 0083892316b6a761254429e8ba018419
BLAKE2b-256 9679514b12e6f21f6c5a25b7f84dbc453c153aa15c782959860d8d8cc5eb4bee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab98016541543692a37905871a5ffca59b16e08aacc3d7d10a27297b443f572d
MD5 dd311ce2973db4a43f4793276f0e7a81
BLAKE2b-256 14a490938acfd32307db288da70476bd5feade878ce1af4cae83344598f9ccbb

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 224a9269f133564109ce668213ef3cb32bc72ccf040b0b51c72a50e569e9dc9e
MD5 d15533721422165b26e882b3f14f517e
BLAKE2b-256 75cb12a05cbb77e226ba1656fb70dbd5133d6b2bd9f747d1f6edb4f7be8e6823

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b66421f8878a0c82fc0c272a43e2121c8d4c67cb37429b764f0d5ad70b82993b
MD5 97100bee9695a60853e836366a3f8874
BLAKE2b-256 6d32314100a0b8c197f07f64c93978cab754023c910386225827e2369c7db049

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7117cb7d6ac7f2e985f3d18aa8a1728864097da1a677ffa69e970ca215baebf1
MD5 045d2c57e0585ebf5e8460dfb813d4a9
BLAKE2b-256 4e7286e045c43c8340f00db919fd667dcc9e7d5a3c838b80dc8c42a3ce8b66bd

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 853cc36e756ff673bf984e9044ccc8fad60b95a748915dddeab9488aea974c73
MD5 bc2e36ab4a332541cea89720c18b6e05
BLAKE2b-256 70a3e2538ee7085216342260f74be63ee21411e440c923fa0a2052f5dbd20add

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 51d27844763c273a122e08a3e86e7aefa54ee09fb672d96a645ece0454d8425e
MD5 6bd34d06380387abb9471f76c75350b7
BLAKE2b-256 4669e6a06aa87ded0b8b6a6eb221816d94389e25c2520f1e9aab79b6873cc111

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c8982ee19ccecabbaeac1ba687bfef085a6352a8c64f821ce2f43e6d76a9298
MD5 a94e8ad604a0bfadecb6dd12290aa345
BLAKE2b-256 6b872dbfe28cc5fc1a8b22ee8e433595b2d577a60144672c113fa329fd6abdd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ca23b41355ba95929e9505ee04e55495726aa2282003ed9b012d86f857d3e49b
MD5 972c3a23f964eea25e96c401f45087d2
BLAKE2b-256 b3e219c7e525f3f59991f8f57b44e40d8421873d8bfadfbcb9b8db36ec26bf1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.5.10-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 15e593386ec6331e0ab4ac0795b7593f02ab2f4b30a698beb89fbdc34f92386a
MD5 6637a4d26d551ccced0e51daad0dec6c
BLAKE2b-256 2a69e8289ecb9da8fb914c40b0719965c23ea75cae9f59cd5bee3b46cfd3c481

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: regex-2024.5.10-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 269.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 458d68d34fb74b906709735c927c029e62f7d06437a98af1b5b6258025223210
MD5 4bf70571a474837d83648201a758642a
BLAKE2b-256 c52c1d8989eb62bd93cce8c05cf95460e3083c67dae299e0a37b57c68047e264

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-win32.whl.

File metadata

  • Download URL: regex-2024.5.10-cp38-cp38-win32.whl
  • Upload date:
  • Size: 257.1 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.5.10-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 1118ba9def608250250f4b3e3f48c62f4562ba16ca58ede491b6e7554bfa09ff
MD5 5e4a081a7ad05e853743ef1b579841c1
BLAKE2b-256 1297b1b441cd1b04d3153109a3b9e94e7212fb043a0dd9bd1c42391d955c0396

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0bc94873ba11e34837bffd7e5006703abeffc4514e2f482022f46ce05bd25e67
MD5 b55cb033792e4e90c70f266e4da803af
BLAKE2b-256 8ff3dc01e54241ee352608d8e67d43951497abfe31770a7bb05165bc3982f2ca

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 c43395a3b7cc9862801a65c6994678484f186ce13c929abab44fb8a9e473a55a
MD5 db4e380c1f7417957ddd22c381ebe7ee
BLAKE2b-256 9a84f1f700264637ed44b8354d91fbe0e4611840e36de26bb13bb39f2e04497f

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 b43b78f9386d3d932a6ce5af4b45f393d2e93693ee18dc4800d30a8909df700e
MD5 5a5e1679df0f30c4c95107d10432ec93
BLAKE2b-256 6d5af5d281203bb5ae514b31e3f162e6fea12fa0d62807ff0803a3126aef37a6

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 ea057306ab469130167014b662643cfaed84651c792948891d003cf0039223a5
MD5 55b0cedf72b4fed91e9baeca997cc0a0
BLAKE2b-256 a6d0637c281f6b09482c6a92d615da690f817ef7c7f0d1d33af2e430188ec575

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 696639a73ca78a380acfaa0a1f6dd8220616a99074c05bba9ba8bb916914b224
MD5 619b86b79188ec9f2ecc55d9b03d65d9
BLAKE2b-256 ef2420de891f6b7b2c5119b6f9468bb16fb0daa27556d3086ce2e0184b276935

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf7c8ee4861d9ef5b1120abb75846828c811f932d63311596ad25fa168053e00
MD5 d96afd03b1ee9aabd2db28060ef6e030
BLAKE2b-256 25770ffb459777dccc12943a156627aedc6109cada9e711b56930e760683b1c3

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 9cdbb1998da94607d5eec02566b9586f0e70d6438abf1b690261aac0edda7ab6
MD5 e78694d7433a5b9691a9240800a323c2
BLAKE2b-256 73cc582eb2a1cf9cc8b2d926a38ec397e6505ca8fd0bde191c72aee2b02d376b

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 972b49f2fe1047b9249c958ec4fa1bdd2cf8ce305dc19d27546d5a38e57732d8
MD5 431165bf7e0b5f1c99f9a4646823f832
BLAKE2b-256 8cc2e5b0bd2ca345067c6ae932668747c8b955c8d3fecc9e266ef01f809142fd

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0709ba544cf50bd5cb843df4b8bb6701bae2b70a8e88da9add8386cbca5c1385
MD5 c1e3035eb45ef07aaa811e16156fdcca
BLAKE2b-256 3970210a86d643a916bafab9e527e86bb2b7045af86ac02902b6e145184cba5d

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8722f72068b3e1156a4b2e1afde6810f1fc67155a9fa30a4b9d5b4bc46f18fb0
MD5 490cc8b3222dbd43a2d6be5a07e2d7d2
BLAKE2b-256 a03f99dedb56675ada3029df9863b60cec4599656d46edfc4923fb9612d17cc0

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7d35d4cc9270944e95f9c88af757b0c9fc43f396917e143a5756608462c5223b
MD5 a293923aec4ba5f6b8c0f00cdbcb1175
BLAKE2b-256 7bbe1d2a813234ddf38b917322a3a72d947fa8dd8fadb12e67162a82e3269303

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29d839829209f3c53f004e1de8c3113efce6d98029f044fa5cfee666253ee7e6
MD5 5a577787e32120bb311ea3cc305d4980
BLAKE2b-256 2c145ba6fe94cca5ca86bcbb96f6e6fd7224c88d21c3378565f6e3da7b48a0c6

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6ccdeef4584450b6f0bddd5135354908dacad95425fcb629fe36d13e48b60f32
MD5 eb7d9003aeca23efa9551abaa757c271
BLAKE2b-256 f1278e3297fd605271df53940c68b9a016d039b4a9f5655343a8b50631ba31ac

See more details on using hashes here.

File details

Details for the file regex-2024.5.10-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for regex-2024.5.10-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 bbdc5db2c98ac2bf1971ffa1410c87ca7a15800415f788971e8ba8520fc0fda9
MD5 9239ed51b4f9589b0e673ba05a94741d
BLAKE2b-256 ca3f6f3b229386cbe5be8ac1377841bcbc164206ed1e6bb57eec18971e18ba0a

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