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.4.16.tar.gz (394.7 kB view details)

Uploaded Source

Built Distributions

regex-2024.4.16-cp312-cp312-win_amd64.whl (268.4 kB view details)

Uploaded CPython 3.12Windows x86-64

regex-2024.4.16-cp312-cp312-win32.whl (257.5 kB view details)

Uploaded CPython 3.12Windows x86

regex-2024.4.16-cp312-cp312-musllinux_1_1_x86_64.whl (759.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

regex-2024.4.16-cp312-cp312-musllinux_1_1_s390x.whl (779.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ s390x

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

Uploaded CPython 3.12musllinux: musl 1.1+ ppc64le

regex-2024.4.16-cp312-cp312-musllinux_1_1_i686.whl (742.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

regex-2024.4.16-cp312-cp312-musllinux_1_1_aarch64.whl (751.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

regex-2024.4.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (789.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

regex-2024.4.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (829.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

regex-2024.4.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (786.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

regex-2024.4.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (777.0 kB view details)

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

regex-2024.4.16-cp312-cp312-macosx_11_0_arm64.whl (292.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

regex-2024.4.16-cp312-cp312-macosx_10_9_x86_64.whl (298.4 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

regex-2024.4.16-cp312-cp312-macosx_10_9_universal2.whl (500.7 kB view details)

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

regex-2024.4.16-cp311-cp311-win_amd64.whl (268.9 kB view details)

Uploaded CPython 3.11Windows x86-64

regex-2024.4.16-cp311-cp311-win32.whl (257.0 kB view details)

Uploaded CPython 3.11Windows x86

regex-2024.4.16-cp311-cp311-musllinux_1_1_x86_64.whl (753.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

regex-2024.4.16-cp311-cp311-musllinux_1_1_s390x.whl (776.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ s390x

regex-2024.4.16-cp311-cp311-musllinux_1_1_ppc64le.whl (770.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ppc64le

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

Uploaded CPython 3.11musllinux: musl 1.1+ i686

regex-2024.4.16-cp311-cp311-musllinux_1_1_aarch64.whl (750.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

regex-2024.4.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (785.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

regex-2024.4.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (823.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

regex-2024.4.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (783.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

regex-2024.4.16-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.4.16-cp311-cp311-macosx_11_0_arm64.whl (291.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

regex-2024.4.16-cp311-cp311-macosx_10_9_x86_64.whl (296.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

regex-2024.4.16-cp311-cp311-macosx_10_9_universal2.whl (497.7 kB view details)

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

regex-2024.4.16-cp310-cp310-win_amd64.whl (268.9 kB view details)

Uploaded CPython 3.10Windows x86-64

regex-2024.4.16-cp310-cp310-win32.whl (257.0 kB view details)

Uploaded CPython 3.10Windows x86

regex-2024.4.16-cp310-cp310-musllinux_1_1_x86_64.whl (744.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

regex-2024.4.16-cp310-cp310-musllinux_1_1_s390x.whl (768.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ s390x

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

Uploaded CPython 3.10musllinux: musl 1.1+ ppc64le

regex-2024.4.16-cp310-cp310-musllinux_1_1_i686.whl (731.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

regex-2024.4.16-cp310-cp310-musllinux_1_1_aarch64.whl (743.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

regex-2024.4.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (774.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

regex-2024.4.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (800.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

regex-2024.4.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (814.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

regex-2024.4.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (774.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

regex-2024.4.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (690.4 kB view details)

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

regex-2024.4.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (763.0 kB view details)

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

regex-2024.4.16-cp310-cp310-macosx_11_0_arm64.whl (291.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

regex-2024.4.16-cp310-cp310-macosx_10_9_x86_64.whl (296.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

regex-2024.4.16-cp310-cp310-macosx_10_9_universal2.whl (497.6 kB view details)

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

regex-2024.4.16-cp39-cp39-win_amd64.whl (268.9 kB view details)

Uploaded CPython 3.9Windows x86-64

regex-2024.4.16-cp39-cp39-win32.whl (257.1 kB view details)

Uploaded CPython 3.9Windows x86

regex-2024.4.16-cp39-cp39-musllinux_1_1_x86_64.whl (744.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

regex-2024.4.16-cp39-cp39-musllinux_1_1_s390x.whl (768.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ s390x

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

Uploaded CPython 3.9musllinux: musl 1.1+ ppc64le

regex-2024.4.16-cp39-cp39-musllinux_1_1_i686.whl (730.7 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

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

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

regex-2024.4.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (773.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

regex-2024.4.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (799.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

regex-2024.4.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (814.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

regex-2024.4.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

regex-2024.4.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (689.8 kB view details)

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

regex-2024.4.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (762.6 kB view details)

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

regex-2024.4.16-cp39-cp39-macosx_11_0_arm64.whl (291.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

regex-2024.4.16-cp39-cp39-macosx_10_9_x86_64.whl (296.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

regex-2024.4.16-cp39-cp39-macosx_10_9_universal2.whl (497.6 kB view details)

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

regex-2024.4.16-cp38-cp38-win_amd64.whl (268.9 kB view details)

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8Windows x86

regex-2024.4.16-cp38-cp38-musllinux_1_1_x86_64.whl (752.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

regex-2024.4.16-cp38-cp38-musllinux_1_1_s390x.whl (771.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ s390x

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

Uploaded CPython 3.8musllinux: musl 1.1+ ppc64le

regex-2024.4.16-cp38-cp38-musllinux_1_1_i686.whl (738.1 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

regex-2024.4.16-cp38-cp38-musllinux_1_1_aarch64.whl (748.5 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

regex-2024.4.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (777.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

regex-2024.4.16-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (802.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

regex-2024.4.16-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (818.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

regex-2024.4.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

regex-2024.4.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (695.8 kB view details)

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

regex-2024.4.16-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (764.5 kB view details)

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

regex-2024.4.16-cp38-cp38-macosx_11_0_arm64.whl (291.3 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

regex-2024.4.16-cp38-cp38-macosx_10_9_x86_64.whl (296.6 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

regex-2024.4.16-cp38-cp38-macosx_10_9_universal2.whl (497.6 kB view details)

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

regex-2024.4.16-cp37-cp37m-win_amd64.whl (269.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

regex-2024.4.16-cp37-cp37m-win32.whl (257.2 kB view details)

Uploaded CPython 3.7mWindows x86

regex-2024.4.16-cp37-cp37m-musllinux_1_1_x86_64.whl (733.6 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

regex-2024.4.16-cp37-cp37m-musllinux_1_1_s390x.whl (757.4 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ s390x

regex-2024.4.16-cp37-cp37m-musllinux_1_1_ppc64le.whl (755.8 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ppc64le

regex-2024.4.16-cp37-cp37m-musllinux_1_1_i686.whl (724.2 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ i686

regex-2024.4.16-cp37-cp37m-musllinux_1_1_aarch64.whl (732.7 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ARM64

regex-2024.4.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (761.6 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

regex-2024.4.16-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (786.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ s390x

regex-2024.4.16-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (801.3 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ppc64le

regex-2024.4.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (760.4 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

regex-2024.4.16-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (681.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

regex-2024.4.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (749.1 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

regex-2024.4.16-cp37-cp37m-macosx_10_9_x86_64.whl (297.2 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for regex-2024.4.16.tar.gz
Algorithm Hash digest
SHA256 fa454d26f2e87ad661c4f0c5a5fe4cf6aab1e307d1b94f16ffdfcb089ba685c0
MD5 1887cc71be6feacb692246944be9f59b
BLAKE2b-256 1440033a8339e9b2ab82eaf29c07d74f1fd6aaa62f7f8c994261be60a6c97b30

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 268.4 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.4.16-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 785c071c982dce54d44ea0b79cd6dfafddeccdd98cfa5f7b86ef69b381b457d9
MD5 ba50fdd2712ef4cd004cb8a4d05f74ff
BLAKE2b-256 4b35ff1194913e4b88b95ecaddd8aa6315bc81b97e8f3e2e6ce0dee91c3bb2b1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp312-cp312-win32.whl
  • Upload date:
  • Size: 257.5 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.4.16-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 904c883cf10a975b02ab3478bce652f0f5346a2c28d0a8521d97bb23c323cc8b
MD5 58662078c29ca2d826a0e58981343ec2
BLAKE2b-256 793fc2b52a83d8a03601846cc03167e1e51c9b7526049cc281b2e09920c5ee66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 370c68dc5570b394cbaadff50e64d705f64debed30573e5c313c360689b6aadc
MD5 5222a9e3905f7710f2c5d1988305e56e
BLAKE2b-256 c61445ebf394cf8e0b4d10679052d9fedcf9c7828d0fa19e25669c29314d05c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 d2da13568eff02b30fd54fccd1e042a70fe920d816616fda4bf54ec705668d81
MD5 058944e79b407d78c07310c5321a8448
BLAKE2b-256 5512616491b1a55180dee5669e7d95832c150afe78b82c846722ed33577f52ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 91797b98f5e34b6a49f54be33f72e2fb658018ae532be2f79f7c63b4ae225145
MD5 354aa92e1e24ea4b6db84b3abb970ae3
BLAKE2b-256 91b06dfc6d97886d10c20672fa2de4f25e9ff12f484338020383121ffd79f0fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c2d0e7cbb6341e830adcbfa2479fdeebbfbb328f11edd6b5675674e7a1e37730
MD5 c5a416b62bbab93295be8dce82a8e061
BLAKE2b-256 0ee718cc9fc45d4233e0995f2ad782413c41a52e29cb5555709fa9f39278cdf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 4e819a806420bc010489f4e741b3036071aba209f2e0989d4750b08b12a9343f
MD5 7c4a4b09c6ea44a1894726d00482fcaa
BLAKE2b-256 a404dc5abe8adbe7911a1ed3a1c0b4b053b0408d9a1a672d8a9341532e102c09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 08dea89f859c3df48a440dbdcd7b7155bc675f2fa2ec8c521d02dc69e877db70
MD5 099a3fd42895f23908270f788c8b3c25
BLAKE2b-256 62bb482ca5269d92ebacd0c88e5646d0247e26253b8d597774bab5ffba9d618f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d0800631e565c47520aaa04ae38b96abc5196fe8b4aa9bd864445bd2b5848a7a
MD5 d4060274fbaa63ae11be1925e143d6b0
BLAKE2b-256 cef15ef0f6698f090842f39e2325381cfbc67ad7143d5d247d4461e5ff0ecd68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4aba818dcc7263852aabb172ec27b71d2abca02a593b95fa79351b2774eb1d2b
MD5 0d51e6b297ed18a4ddae2b43abc5c290
BLAKE2b-256 2b4384886ff418fa8d70841c49f6bf0c2d34b373dd32e0e3c8c3c13b25032bdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6295004b2dd37b0835ea5c14a33e00e8cfa3c4add4d587b77287825f3418d310
MD5 537e2ee533ef578a3ce08bf7943a2240
BLAKE2b-256 7793c11e4ac279c3649097e2d65bd9f70ddfaa7a6bbbc3cfb0c5efe5176e6c80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 eeaa0b5328b785abc344acc6241cffde50dc394a0644a968add75fcefe15b9d4
MD5 380565dac3faec26d683a7304b5572d2
BLAKE2b-256 0bfdb17317f40e9b7647761fb9ae3a383a0c0da2ba52107f3e17a95ca5667911

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ba6745440b9a27336443b0c285d705ce73adb9ec90e2f2004c64d95ab5a7598
MD5 f807c215123e05c1f65062abcdd4d321
BLAKE2b-256 786144eddc3a044d5ac9c04ef3a1f06f1ebeb5199c68245d0b4e27523f3ec4e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d61ae114d2a2311f61d90c2ef1358518e8f05eafda76eaf9c772a077e0b465ec
MD5 28d74040c2a0992cb08bd5d0e3d58a38
BLAKE2b-256 c52fe1c5564ad74f6feddd26f96eccd048da0ff095a8831fa126365c887d0ce7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 80b696e8972b81edf0af2a259e1b2a4a661f818fae22e5fa4fa1a995fb4a40fd
MD5 b6c687482ae90223a79cd69d50556448
BLAKE2b-256 753f2072cc35256a02f77eada8e5f912c9154a50ee74d5b46f4a248a802602a6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 268.9 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.4.16-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8f83b6fd3dc3ba94d2b22717f9c8b8512354fd95221ac661784df2769ea9bba9
MD5 1f68da12dfe762bc0d10f5a981624742
BLAKE2b-256 b3d01a054b685849b018cff594ccd4859fc6a3132f67698da805ed06d5b6974a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp311-cp311-win32.whl
  • Upload date:
  • Size: 257.0 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.4.16-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 ba2336d6548dee3117520545cfe44dc28a250aa091f8281d28804aa8d707d93d
MD5 cfe1a43a4288bda06c52123ea2b971fa
BLAKE2b-256 cfeeeed20bdf5a60fe7aa8c5392f773ccb5398b8d7300a8160ea89c51cd452e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 159dc4e59a159cb8e4e8f8961eb1fa5d58f93cb1acd1701d8aff38d45e1a84a6
MD5 98e5bdcbd14a240fd1e448e3b2688303
BLAKE2b-256 60952f8e44a304ff680c42d206566b6bd071747f52ba9f110a56d6fe020ef13c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 0a38d151e2cdd66d16dab550c22f9521ba79761423b87c01dae0a6e9add79c0d
MD5 aace59cfc19aa2ca38eea67ab145d365
BLAKE2b-256 c59127be693b06fa8d557332b91944dfeeaac94602e10f7d5710731731b90082

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 3d5ac5234fb5053850d79dd8eb1015cb0d7d9ed951fa37aa9e6249a19aa4f336
MD5 2e1b39310a1dc667eabe5bcb817d1312
BLAKE2b-256 9c2ed0219d15158b6e659d9a407f3118b9cb58dce729031645f105b87abdc9a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8d015604ee6204e76569d2f44e5a210728fa917115bef0d102f4107e622b08d5
MD5 98e2ef2454babf87ed3a9551ff59697a
BLAKE2b-256 3e3947c2ef89d0fd56cdb7c7a70ab158e928c652152fe5a3536548b339a6c418

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 3a1018e97aeb24e4f939afcd88211ace472ba566efc5bdf53fd8fd7f41fa7170
MD5 d626d7c3d6c833c939257a4ab24b151c
BLAKE2b-256 713cc2668fa460356aad8990b44b5faf5b0827b2ac8c203a98e60a89009a2e07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c8290b44d8b0af4e77048646c10c6e3aa583c1ca67f3b5ffb6e06cf0c6f0f89
MD5 d200f87a17a8fd6db344b97700d7a82f
BLAKE2b-256 8b9e05bc55a3295d469ae658e15c7f6edc0f54d39745ad3bd268351ac31be73d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b74586dd0b039c62416034f811d7ee62810174bb70dffcca6439f5236249eb09
MD5 7263d897c65bc8f3e3b98b6395e34b2e
BLAKE2b-256 620500587fa2104f5e229a2c93d9107cf4a3fa7e061a0d3bc868d7ccb2d20dea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 20b7a68444f536365af42a75ccecb7ab41a896a04acf58432db9e206f4e525d6
MD5 eb618e47cf746653d49e630e9a48845a
BLAKE2b-256 c463ff03a294022ccfb46d6dd6873bdc49fc25e4f55bee3382a398d4a1b72b47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7bb966fdd9217e53abf824f437a5a2d643a38d4fd5fd0ca711b9da683d452969
MD5 1a0b6327461b04983bfbff9074190f55
BLAKE2b-256 ce9474388e3bcc7f274cef5df7aba75e5cb661b319e6923dae99612a7174d93a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f2d80a6749724b37853ece57988b39c4e79d2b5fe2869a86e8aeae3bbeef9eb0
MD5 5a875adf303a1b0cd7ee7fb2d4a5c41d
BLAKE2b-256 7a7a0127649ded1bf20961726d5647e0433e871fffcfe9529dfbadd399908cca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd80d1280d473500d8086d104962a82d77bfbf2b118053824b7be28cd5a79ea5
MD5 ccfc74115e3e420bd16524560f9dedd1
BLAKE2b-256 aaf1de801945e6a18c9b7d7ea9ffe01d2433b40d1609426c3581f7d60acd1416

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9ab40412f8cd6f615bfedea40c8bf0407d41bf83b96f6fc9ff34976d6b7037fd
MD5 7fc939c644e21a412e8098f836362173
BLAKE2b-256 fdb28069e8940bc3224d2cef6418aa6de4f2119d59709b841ecab012e3fc1d65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1210365faba7c2150451eb78ec5687871c796b0f1fa701bfd2a4a25420482d26
MD5 b1f979760411cc73d25fbb9ba284b66a
BLAKE2b-256 48e3ab8413aea028ccb576cb690620fe1db6ff8da52624b3985eeaf26592a0f9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 268.9 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.4.16-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e0a2df336d1135a0b3a67f3bbf78a75f69562c1199ed9935372b82215cddd6e2
MD5 4f43552a48d90e8c25974e0e94eefb1c
BLAKE2b-256 e063c8e3c0956581df6349126d5f3821077a89032ae99520961d9be7cde68865

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp310-cp310-win32.whl
  • Upload date:
  • Size: 257.0 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.4.16-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 911742856ce98d879acbea33fcc03c1d8dc1106234c5e7d068932c945db209c0
MD5 8b77d9807c2099fedb01315f798e2988
BLAKE2b-256 644be73c389c96ce7fdec78dd4b76e06e370d60048cdac98f2bb11d16513ed99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4facc913e10bdba42ec0aee76d029aedda628161a7ce4116b16680a0413f658a
MD5 38487394c2ab5159f58304c77a220554
BLAKE2b-256 8efe9463c923220c5bb2cc1cf7ac3f9a6199a3ce7274ae797e28ac31711ea12a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 7731728b6568fc286d86745f27f07266de49603a6fdc4d19c87e8c247be452af
MD5 3a4f1f5515c35ba16a99a622dbfde867
BLAKE2b-256 f6e6de438b3462f5711e1c60c6f00756b3f9e41b7fa06572a5a9d6dd5ff30bdc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 95399831a206211d6bc40224af1c635cb8790ddd5c7493e0bd03b85711076a53
MD5 1c0b5c04bc5d7497f738e511094ac856
BLAKE2b-256 32c79cb59a408a2138b4f5bf2e75a13f0b663f7a488a998e08692b597d43c18c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 445ca8d3c5a01309633a0c9db57150312a181146315693273e35d936472df912
MD5 ecb390f5a357aa963df4557cb8c18d54
BLAKE2b-256 4aac05fc60d7dc5a73050b73707c8db3541c04d661fd65f440d777c11238ab4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 78fddb22b9ef810b63ef341c9fcf6455232d97cfe03938cbc29e2672c436670e
MD5 4e6ad788948ce9b9f46ebd4bc71943f6
BLAKE2b-256 10bc18144fd30878e78fe413f0209929177043423ec4cc4a9072b1f2e08872a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4ed75ea6892a56896d78f11006161eea52c45a14994794bcfa1654430984b22
MD5 bd1ccb102846e47b69067c36a313f311
BLAKE2b-256 a3ec6f1d7160c9dbbc4ffe87167f28ddfab359e1043acafce5407c8b11c5f581

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5c02fcd2bf45162280613d2e4a1ca3ac558ff921ae4e308ecb307650d3a6ee51
MD5 cd33cfd392bba115c39285f78a0cdd3b
BLAKE2b-256 cdfd7dd9a8a88208c6086f67138b56feb44282920403eefe20b0b62043ef8dc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a70b51f55fd954d1f194271695821dd62054d949efd6368d8be64edd37f55c86
MD5 629a5cbf1400dfa061e9fde1a54b64a7
BLAKE2b-256 7e0e66bb92825daad9f7bb7ac0f9c2ea1abbbee62ffcc4ef39f901bcd6cc6ec3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 956b58d692f235cfbf5b4f3abd6d99bf102f161ccfe20d2fd0904f51c72c4c66
MD5 ed93486b9cd04f6df7993355f54d40f1
BLAKE2b-256 4740a4b2612fb12de5abcd495f8a8585ff5371e405e5162090996154d8242bf5

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-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.4.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7cbc5d9e8a1781e7be17da67b92580d6ce4dcef5819c1b1b89f49d9678cc278c
MD5 e8632050f9713cbf9a6d0f9f9e777794
BLAKE2b-256 9f2f48ef8630a005abe00b1f99b4fcceb6ea4f8d8306a55511d7ff5d0404a22b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bd727ad276bb91928879f3aa6396c9a1d34e5e180dce40578421a691eeb77f47
MD5 bdc4e45639c4e02225c86359f5022ad4
BLAKE2b-256 b55370781987086319749716fb7d2261f41d95d8255bcfd5393a39691a8013c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 10188fe732dec829c7acca7422cdd1bf57d853c7199d5a9e96bb4d40db239c73
MD5 46b60e57cff94916b6881cb3a118df4d
BLAKE2b-256 f14b0477c6076fa63a8f3261e89c69765d5369fb70be644b6df844569970c1a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8c91e1763696c0eb66340c4df98623c2d4e77d0746b8f8f2bee2c6883fd1fe18
MD5 abbacc7eeba25db82715e2cb170762ea
BLAKE2b-256 330705c598df9212ed224715febfdf30a5cbfd584e2ffbdae1826e3026404e4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fb83cc090eac63c006871fd24db5e30a1f282faa46328572661c0a24a2323a08
MD5 efc0eeab1079eeb210dae193e8b92a26
BLAKE2b-256 934f1467e17dbdfe724bb458c4c48139e5d271063c9d76d9b94e789753673d72

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 268.9 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.4.16-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e697e1c0238133589e00c244a8b676bc2cfc3ab4961318d902040d099fec7483
MD5 e565ac25b02348e651d7c62c63abf6a9
BLAKE2b-256 28a4329f769a7329c57ab3c59b21cc56012a178318b158a6275383f21115d2e8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp39-cp39-win32.whl
  • Upload date:
  • Size: 257.1 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.4.16-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 684e52023aec43bdf0250e843e1fdd6febbe831bd9d52da72333fa201aaa2335
MD5 ab5cbbc038a6fbeae0f9af1a21b75a00
BLAKE2b-256 1bccbe957dd806481e000e25fb166472d362c88ce8825a9b2682dd7a1f18d833

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4918fd5f8b43aa7ec031e0fef1ee02deb80b6afd49c85f0790be1dc4ce34cb50
MD5 7f4b63162dc291152c47e4a67d158f39
BLAKE2b-256 639cc6c9b7674a8c9c6bcae76a0a4eac70044b4f135ed4243e6c00ec8d529ac6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 89ec7f2c08937421bbbb8b48c54096fa4f88347946d4747021ad85f1b3021b3c
MD5 7380b00995bdaa3968dd078f6be7ddaa
BLAKE2b-256 33c251cbb24c50f1b4d4c53394c900c712b2dead1dfed55ce7ade903f4a29890

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 b9d320b3bf82a39f248769fc7f188e00f93526cc0fe739cfa197868633d44701
MD5 d4db7b8f1fc8574cc728a7c481ace812
BLAKE2b-256 f9138696909b8e337528b57f10d174e98827fc6f7ee0e07c56fe317a35b84ba2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 23cff1b267038501b179ccbbd74a821ac4a7192a1852d1d558e562b507d46013
MD5 6901b3b462932f4f22a460a30b20feea
BLAKE2b-256 4b727a573fd080e1154581c10733b92b8187f86260261dc1bfbd514a3492882b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6cc38067209354e16c5609b66285af17a2863a47585bcf75285cab33d4c3b8df
MD5 f7630ad88a2e85f7070257f781580c49
BLAKE2b-256 34d53d5e6de9773f431bfc4d344e5350da838a4a60b80a2a9d1ac4d9779dc6c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98c1165f3809ce7774f05cb74e5408cd3aa93ee8573ae959a97a53db3ca3180d
MD5 26d391e7d3f57ae9f4572ead5cda00e1
BLAKE2b-256 60812f039f31195283640b4287a0c647e062a7cf4efb65ad6573029280b6a0aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ea355eb43b11764cf799dda62c658c4d2fdb16af41f59bb1ccfec517b60bcb07
MD5 f950cd548d067d28078a3e7d4aef79f3
BLAKE2b-256 6979c99d5bb8eac0d32eb1b852b87c7cb1507bf3e24451f198cff1ee10be81fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 65436dce9fdc0aeeb0a0effe0839cb3d6a05f45aa45a4d9f9c60989beca78b9c
MD5 02f3aa72a3785580d88ac12533c04e38
BLAKE2b-256 0eb01e801761e4b6b2d450b76d3cd71b2a61511a13531c9067d556d1a60f4bbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 684008ec44ad275832a5a152f6e764bbe1914bea10968017b6feaecdad5736e0
MD5 b6efb3f59b01b2dc7d67de7e214e3114
BLAKE2b-256 8d7f754d7bba85b3829274329bda56994301d8bd9d2614200631bc41450035c0

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-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.4.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 00169caa125f35d1bca6045d65a662af0202704489fada95346cfa092ec23f39
MD5 af2bf16527a79cb98cf5153b5c8a186d
BLAKE2b-256 f4a89e377727f1f21fdfc050aa372a916ee034c6015fba7a11fb01784df5a080

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 cccc79a9be9b64c881f18305a7c715ba199e471a3973faeb7ba84172abb3f317
MD5 9f89f1663e4afb75a9563268d9f41f41
BLAKE2b-256 4c7670e025e45a998703ec5c10abe2c82277a7f72e1e66c550249be8669a80d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 803b8905b52de78b173d3c1e83df0efb929621e7b7c5766c0843704d5332682f
MD5 d1301d489dbc40794d69d8a26eb9a028
BLAKE2b-256 04baa81cb1a2b691f545372c96394b37c63aa386d6e1b11b17050741afca713c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f2f017c5be19984fbbf55f8af6caba25e62c71293213f044da3ada7091a4455
MD5 5f2508bffd5c2764b8a053ab206e162f
BLAKE2b-256 d8086739575cfdf7fbc4ff63c7948746383dd07bbfdada8517d529f5f483dbad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a7ccdd1c4a3472a7533b0a7aa9ee34c9a2bef859ba86deec07aff2ad7e0c3b94
MD5 37c08d57b175c89e3a854988d6ac84fe
BLAKE2b-256 e7103d9e242d315cb9e7c668bd2d481050cdcfc9059ca22425cd8aa835646944

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 268.9 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.4.16-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0534b034fba6101611968fae8e856c1698da97ce2efb5c2b895fc8b9e23a5834
MD5 5a78070f92144262777234d37429c74c
BLAKE2b-256 741ac4d746ac9779719f39c309cf2ac6816ab918da54fe11dfb0c67de04295ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2024.4.16-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.4.16-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 479595a4fbe9ed8f8f72c59717e8cf222da2e4c07b6ae5b65411e6302af9708e
MD5 07bdd8081615145b383f21cd2a5a7f65
BLAKE2b-256 8f565ee733df34bddc53fedcf6695232c95dde0a8911f9ab3a73dd7d710d1afe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 12f6a3f2f58bb7344751919a1876ee1b976fe08b9ffccb4bbea66f26af6017b9
MD5 48c686e005ba02240adcf5ee40f9d42c
BLAKE2b-256 11c723f7ac6f55f65743c88d79f014bbda3c0169a9abc1422c9015ebf4e3b5a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 c21fc21a4c7480479d12fd8e679b699f744f76bb05f53a1d14182b31f55aac76
MD5 285769c95dc82944a644ae68c7b472e7
BLAKE2b-256 a14f2e3d2ac0233020e639952aa244f39361071ef75685285b959430ba5f6a9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 ec7e0043b91115f427998febaa2beb82c82df708168b35ece3accb610b91fac1
MD5 4f8263efd651258762fe8ba832c1c1e1
BLAKE2b-256 fdbe963d091671306efc6c04e8fa011bf04bc5873cc66deae39b6872e76079de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 03e68f44340528111067cecf12721c3df4811c67268b897fbe695c95f860ac42
MD5 af66300ec963295b418d5c1aab820a2f
BLAKE2b-256 469440a06c7022993853bc1f5f58206ca6e1a00d11314109d143719c33fda51a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 8fc6976a3395fe4d1fbeb984adaa8ec652a1e12f36b56ec8c236e5117b585427
MD5 3aba3f65d3326f85bd130a69bcddea13
BLAKE2b-256 3c7630523eab60fca0682acd429d9c6400d8ff479417533f11577233e7d800aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9df1bfef97db938469ef0a7354b2d591a2d438bc497b2c489471bec0e6baf7c4
MD5 f64e7032398487c1e6789d71d4f93864
BLAKE2b-256 6abf63ab5bb5b32d5460c2ab1c3fc51da6a61085af4b785ea6d9b866dd4541d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d83c2bc678453646f1a18f8db1e927a2d3f4935031b9ad8a76e56760461105dd
MD5 493336a8298ca9c0cc2e5ff164fc8af2
BLAKE2b-256 895415f1979e65ac7f62a737e9f39d52085b53884202ed2a7921993853e35807

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4313ab9bf6a81206c8ac28fdfcddc0435299dc88cad12cc6305fd0e78b81f9e4
MD5 15a45dbf11a141a4994966103c2c254b
BLAKE2b-256 435c3ab16b0428e6cc3687ef4ad73265ac89c4ad8b635d2ea33183eaeb29439b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e757d475953269fbf4b441207bb7dbdd1c43180711b6208e129b637792ac0b93
MD5 5ad8e571087aff399a7a2615945395f7
BLAKE2b-256 103bccd6284b4b94bb6b20b458025c2d5b18f8575424e8f6ceadfb8691f25f48

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-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.4.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c2ef6f7990b6e8758fe48ad08f7e2f66c8f11dc66e24093304b87cae9037bb4a
MD5 761acc6c69f024149c65b08fac8dcea9
BLAKE2b-256 b9b629da3239d58f19a844736aa625c597242255dddb41bdb83abcd3b96be56a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 62120ed0de69b3649cc68e2965376048793f466c5a6c4370fb27c16c1beac22d
MD5 8e8c52b8c176b846b0efabc2cad89e88
BLAKE2b-256 c4b3d2d765699fa5ec28f19ed005a60b3816a3db716b6598d01e1e9ba9516c87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df79012ebf6f4efb8d307b1328226aef24ca446b3ff8d0e30202d7ebcb977a8c
MD5 8e176e3aefa92492ea3cba3fcfadc754
BLAKE2b-256 a515d2607c3fe9bb8acc7e674558d6f59d6ddae30729d299a4380864b47249fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7571f19f4a3fd00af9341c7801d1ad1967fc9c3f5e62402683047e7166b9f2b4
MD5 9317d4153a46ab709af3919df88b1625
BLAKE2b-256 7c5c7f35a68708b4d05fb93ecd6ee91d5c39641bc1be9d626bb0df2be68ec384

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2024.4.16-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 743deffdf3b3481da32e8a96887e2aa945ec6685af1cfe2bcc292638c9ba2f48
MD5 3ed13e0f20878d44f95885485a84cf2c
BLAKE2b-256 43465636d3886554d4faf8a8c1bb7e762cde9452900e1d42ea2fb67e298fa416

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: regex-2024.4.16-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 269.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ba8122e3bb94ecda29a8de4cf889f600171424ea586847aa92c334772d200331
MD5 b014d524056456af6546cf07caec8ad2
BLAKE2b-256 9ca9e482ecfb6b229cc0b55c5360674280adddea26327a4ecdc258bc09d1fbd3

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-win32.whl.

File metadata

  • Download URL: regex-2024.4.16-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 257.2 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 dd5acc0a7d38fdc7a3a6fd3ad14c880819008ecb3379626e56b163165162cc46
MD5 7f3e8d4d4e68496c1a294ef2de12512b
BLAKE2b-256 eb73c1768ecaa252cd7a331a5197bbcc114e1c23844f0caba123cc007963cd10

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8d1f86f3f4e2388aa3310b50694ac44daefbd1681def26b4519bd050a398dc5a
MD5 1536fd6477b5a5e9497e722f32e8c524
BLAKE2b-256 45381f1321794c1c6884b7da3c8beaf845d01467ed9c9f8a2390953146935614

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 3399dd8a7495bbb2bacd59b84840eef9057826c664472e86c91d675d007137f5
MD5 d120bd9b5e438c04934ecd7eda15ab5f
BLAKE2b-256 477de672c3a0dfc6e93214aa016908fa3ac0bd1d527ae1cf8f7fef7df89a1957

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 5f580c651a72b75c39e311343fe6875d6f58cf51c471a97f15a938d9fe4e0d37
MD5 465524fe83cce40d66c06c2d7990b406
BLAKE2b-256 696bb5ce4766a1e8ccf0a945333a337ac4cad6e2d502a743411c20848fe4950e

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 34422d5a69a60b7e9a07a690094e824b66f5ddc662a5fc600d65b7c174a05f04
MD5 2be14b5dc127890dc1599acbd279e1bf
BLAKE2b-256 5247b78c6830f78acfa9ac11b202a1bae375dbf9c40d497b9550f7bddc876e92

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 549c3584993772e25f02d0656ac48abdda73169fe347263948cf2b1cead622f3
MD5 bc26f8e6473c8bf44e6d232bd8d8bdb2
BLAKE2b-256 8d5697c644323d117460ef8446490e7e3ac48944262c65decee1fae7bf3cbdcc

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c72608e70f053643437bd2be0608f7f1c46d4022e4104d76826f0839199347a
MD5 a11693a04199e18c262b5caae6c9fc4d
BLAKE2b-256 9a0518911646681dfab0ffb76b4b958356c0a3d211bb08e9a2f33f1e9487977d

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b340cccad138ecb363324aa26893963dcabb02bb25e440ebdf42e30963f1a4e0
MD5 f24181baea295dc0fe47a81d345c12ee
BLAKE2b-256 c15e67a6481e7f7c01faa04d1564fe900a786333ee2d881573c3b45ff8f093ee

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 81500ed5af2090b4a9157a59dbc89873a25c33db1bb9a8cf123837dcc9765047
MD5 ffc4888780eee85b2e133774ee84f268
BLAKE2b-256 25c3209a3f51e5e94e61fedac088ca528c0b690de125f3d39c6cae8ff76fbd26

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e87ab229332ceb127a165612d839ab87795972102cb9830e5f12b8c9a5c1b508
MD5 ec5d93bbc7fc1f86335cc6731327b4d7
BLAKE2b-256 46211a3b9252522a8db12db86994f710f10751664782063af8e6036a562cef2c

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-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.4.16-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 03576e3a423d19dda13e55598f0fd507b5d660d42c51b02df4e0d97824fdcae3
MD5 dbf1fe18ca2d1e94b6fa3e9a5a7de573
BLAKE2b-256 8266c615ce5ef71297884b86a2e6dd4e97609eebfcd281847119995cc496e682

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a01fe2305e6232ef3e8f40bfc0f0f3a04def9aab514910fa4203bafbc0bb4682
MD5 08e9567923633d4869de819aa8401935
BLAKE2b-256 78e98589f5ee75d0d5edb12100f7b66895d8d6e233e27889922ccdb7a44d0b05

See more details on using hashes here.

File details

Details for the file regex-2024.4.16-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for regex-2024.4.16-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e2f142b45c6fed48166faeb4303b4b58c9fcd827da63f4cf0a123c3480ae11fb
MD5 8fcb5b78c2cc1044254bc02349295d2d
BLAKE2b-256 c2207a43a9b5feee6e4f11d47b9ab465c814ed277cf1ee87ed3a42058d5e2f73

See more details on using hashes here.

Supported by

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