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.0.0. Full Unicode case-folding is supported.

Flags

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

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

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

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

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

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

Old vs new behaviour

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

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

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

    • Indicated by the VERSION0 flag.

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

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

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

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

    • Only simple sets are supported.

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

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

    • Indicated by the VERSION1 flag.

    • Zero-width matches are handled correctly.

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

    • Nested sets and set operations are supported.

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

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

Case-insensitive matches in Unicode

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

Version 0 behaviour: the flag is off by default.

Version 1 behaviour: the flag is on by default.

Nested sets and set operations

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

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

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

  • Literal “–”

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

  • Literal “]”

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

  • Set which is:

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

  • but excluding:

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

Version 0 behaviour: only simple sets are supported.

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

Notes on named groups

All groups have a group number, starting from 1.

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

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

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

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

  • (\s+) is group 1.

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

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

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

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

Additional features

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

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

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

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

The test of a conditional pattern can be a lookaround.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Added \K (Hg issue 151)

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

It does not affect what groups return.

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

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

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

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

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

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

Fixed the handling of locale-sensitive regexes

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

Added partial matches (Hg issue 102)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# 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-2023.5.4.tar.gz (392.1 kB view details)

Uploaded Source

Built Distributions

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

regex-2023.5.4-cp311-cp311-win_amd64.whl (267.9 kB view details)

Uploaded CPython 3.11Windows x86-64

regex-2023.5.4-cp311-cp311-win32.whl (256.0 kB view details)

Uploaded CPython 3.11Windows x86

regex-2023.5.4-cp311-cp311-musllinux_1_1_x86_64.whl (750.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

regex-2023.5.4-cp311-cp311-musllinux_1_1_s390x.whl (774.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ s390x

regex-2023.5.4-cp311-cp311-musllinux_1_1_ppc64le.whl (768.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ppc64le

regex-2023.5.4-cp311-cp311-musllinux_1_1_i686.whl (736.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

regex-2023.5.4-cp311-cp311-musllinux_1_1_aarch64.whl (746.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

regex-2023.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (781.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

regex-2023.5.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (806.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

regex-2023.5.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (822.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

regex-2023.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (780.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

regex-2023.5.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (771.3 kB view details)

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

regex-2023.5.4-cp311-cp311-macosx_11_0_arm64.whl (288.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

regex-2023.5.4-cp311-cp311-macosx_10_9_x86_64.whl (294.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

regex-2023.5.4-cp310-cp310-win_amd64.whl (267.9 kB view details)

Uploaded CPython 3.10Windows x86-64

regex-2023.5.4-cp310-cp310-win32.whl (256.0 kB view details)

Uploaded CPython 3.10Windows x86

regex-2023.5.4-cp310-cp310-musllinux_1_1_x86_64.whl (741.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

regex-2023.5.4-cp310-cp310-musllinux_1_1_s390x.whl (763.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ s390x

regex-2023.5.4-cp310-cp310-musllinux_1_1_ppc64le.whl (759.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ppc64le

regex-2023.5.4-cp310-cp310-musllinux_1_1_i686.whl (728.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

regex-2023.5.4-cp310-cp310-musllinux_1_1_aarch64.whl (738.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

regex-2023.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (769.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

regex-2023.5.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (794.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

regex-2023.5.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (809.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

regex-2023.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (769.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

regex-2023.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (685.8 kB view details)

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

regex-2023.5.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (759.7 kB view details)

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

regex-2023.5.4-cp310-cp310-macosx_11_0_arm64.whl (288.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

regex-2023.5.4-cp310-cp310-macosx_10_9_x86_64.whl (294.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

regex-2023.5.4-cp39-cp39-win_amd64.whl (268.0 kB view details)

Uploaded CPython 3.9Windows x86-64

regex-2023.5.4-cp39-cp39-win32.whl (256.0 kB view details)

Uploaded CPython 3.9Windows x86

regex-2023.5.4-cp39-cp39-musllinux_1_1_x86_64.whl (741.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

regex-2023.5.4-cp39-cp39-musllinux_1_1_s390x.whl (762.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ s390x

regex-2023.5.4-cp39-cp39-musllinux_1_1_ppc64le.whl (759.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ppc64le

regex-2023.5.4-cp39-cp39-musllinux_1_1_i686.whl (727.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

regex-2023.5.4-cp39-cp39-musllinux_1_1_aarch64.whl (737.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

regex-2023.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (769.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

regex-2023.5.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (794.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

regex-2023.5.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (809.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

regex-2023.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (768.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

regex-2023.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (685.3 kB view details)

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

regex-2023.5.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (759.2 kB view details)

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

regex-2023.5.4-cp39-cp39-macosx_11_0_arm64.whl (288.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

regex-2023.5.4-cp39-cp39-macosx_10_9_x86_64.whl (294.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

regex-2023.5.4-cp38-cp38-win_amd64.whl (267.9 kB view details)

Uploaded CPython 3.8Windows x86-64

regex-2023.5.4-cp38-cp38-win32.whl (256.0 kB view details)

Uploaded CPython 3.8Windows x86

regex-2023.5.4-cp38-cp38-musllinux_1_1_x86_64.whl (747.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

regex-2023.5.4-cp38-cp38-musllinux_1_1_s390x.whl (769.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ s390x

regex-2023.5.4-cp38-cp38-musllinux_1_1_ppc64le.whl (766.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ppc64le

regex-2023.5.4-cp38-cp38-musllinux_1_1_i686.whl (732.8 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

regex-2023.5.4-cp38-cp38-musllinux_1_1_aarch64.whl (744.0 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

regex-2023.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (771.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

regex-2023.5.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (795.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

regex-2023.5.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (811.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

regex-2023.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (769.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

regex-2023.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (691.6 kB view details)

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

regex-2023.5.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (761.0 kB view details)

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

regex-2023.5.4-cp38-cp38-macosx_11_0_arm64.whl (288.8 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

regex-2023.5.4-cp38-cp38-macosx_10_9_x86_64.whl (294.5 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

regex-2023.5.4-cp37-cp37m-win_amd64.whl (268.2 kB view details)

Uploaded CPython 3.7mWindows x86-64

regex-2023.5.4-cp37-cp37m-win32.whl (255.8 kB view details)

Uploaded CPython 3.7mWindows x86

regex-2023.5.4-cp37-cp37m-musllinux_1_1_x86_64.whl (729.5 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

regex-2023.5.4-cp37-cp37m-musllinux_1_1_s390x.whl (753.7 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ s390x

regex-2023.5.4-cp37-cp37m-musllinux_1_1_ppc64le.whl (751.7 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ppc64le

regex-2023.5.4-cp37-cp37m-musllinux_1_1_i686.whl (718.5 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ i686

regex-2023.5.4-cp37-cp37m-musllinux_1_1_aarch64.whl (728.8 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ARM64

regex-2023.5.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (756.6 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

regex-2023.5.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (781.7 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ s390x

regex-2023.5.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (796.7 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ppc64le

regex-2023.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (754.2 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

regex-2023.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (676.3 kB view details)

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

regex-2023.5.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (743.2 kB view details)

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

regex-2023.5.4-cp37-cp37m-macosx_10_9_x86_64.whl (294.8 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

regex-2023.5.4-cp36-cp36m-win_amd64.whl (279.7 kB view details)

Uploaded CPython 3.6mWindows x86-64

regex-2023.5.4-cp36-cp36m-win32.whl (262.7 kB view details)

Uploaded CPython 3.6mWindows x86

regex-2023.5.4-cp36-cp36m-musllinux_1_1_x86_64.whl (732.3 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ x86-64

regex-2023.5.4-cp36-cp36m-musllinux_1_1_s390x.whl (754.4 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ s390x

regex-2023.5.4-cp36-cp36m-musllinux_1_1_ppc64le.whl (751.0 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ ppc64le

regex-2023.5.4-cp36-cp36m-musllinux_1_1_i686.whl (718.5 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ i686

regex-2023.5.4-cp36-cp36m-musllinux_1_1_aarch64.whl (728.6 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ ARM64

regex-2023.5.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (755.9 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

regex-2023.5.4-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl (781.2 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ s390x

regex-2023.5.4-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (795.4 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ppc64le

regex-2023.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (755.4 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ARM64

regex-2023.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (676.3 kB view details)

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

regex-2023.5.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (746.0 kB view details)

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

regex-2023.5.4-cp36-cp36m-macosx_10_9_x86_64.whl (295.0 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: regex-2023.5.4.tar.gz
  • Upload date:
  • Size: 392.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4.tar.gz
Algorithm Hash digest
SHA256 9e1b4b0b4baff934ef3c0ac56578a6b773f7f90ad1db3ff843ee40d83bdae09f
MD5 20573b0af6562fb0f9e98efc8df91409
BLAKE2b-256 e4e6eac6b94eaf4081ccbe08aaff2e729f4c24b7ddaaffd023c0d8d9693ca8fc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 267.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 336fb3f585e239362d4f26dd6f904b15d91febfc980f47ed706858f5cee20ce6
MD5 d4a55bc19d3ad251b0d6dda1c7a805eb
BLAKE2b-256 21e646feb3e69d6147750e2799a685ca45e09c77842b9fff8208571f8f282f89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp311-cp311-win32.whl
  • Upload date:
  • Size: 256.0 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 21b653c1538cbbc1c58f6d6f3ccb4a5ce56491f0ab370ec057c1c64a152eb48c
MD5 5f44ba4bc0b9a94a1028ea98d2631cdf
BLAKE2b-256 1f825a8e0486a7b66934169b6745be39ea3b69d76d2f0503b12ae59c56f89ca0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f576b8dec95456ba0157943a57f5f88c076cf96cc363ef1bf5027c2976fd487a
MD5 d44aaa6543de786c22ddb08ff2bfc2fc
BLAKE2b-256 c67d97e89f7c9874f84a880bf477313fefc3c909499243465f28b8fdc26740a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 861ed1249302664f96b2e968216486a02af0a143e0f3cc6fd92b78f11aa18579
MD5 5f4aac5e26159c0480c58bd7809823ab
BLAKE2b-256 fba528a78b8bf5c3daba4bc0d12ae8bb7cc454925a6855cfe8c6ef4c9522caf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 ccd0c918971f79bd9a883f13f91343dd2eaefbafd4344aadfe5134a65fb821c3
MD5 0de127ea098dad5579d6b5b0ceadbabd
BLAKE2b-256 5a9c48adaa6e0c65afc49a27f3439feb58c9a36a6a710647ab48d087f4014c70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 db5d5c9c7bbcf9cbc541f8adba8c92a7a7abd0de4f0343da4e96fb78ffe9d1a1
MD5 1e71f2396935a8d993033384297b95f0
BLAKE2b-256 7c9d3f4271429150cf60817d2800b5dcdb8ec75cd698935a35007ac4ba8085da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 fbc5b23b569d96b8c831574c93098b68c6d7ff2509f31268c968152ca4f2ecd0
MD5 63cf8e8804c250f9c18608bae5f25828
BLAKE2b-256 848276e3e8422ddaacc5700f6597839ef30809843e9c13e74082a5d2c15bb216

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c2ae89c92a04b057b412f88a3359e77600ce966a740e2da212667ce795e1bdc
MD5 7e4a1aef8132ed663225e6cf39052589
BLAKE2b-256 b04172441fc5e60d41f5c1051a94648f43aff1bef8e467f2963ae38431219c89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 63a92f28a3f285dae06aae83227cb66cc87256db040aaf26c1c48ae5221eccde
MD5 f73d43b7fcaea0d7ba5fd3ab1ea951ca
BLAKE2b-256 5b471e1f5d045021d0695f4269124d0d1030729bd0000702ff36d9a865d4312f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 3d8cc797f87c07372e7d300198e1423c2b7bd35b68f375cc6700e26158940c9a
MD5 8df72c033fce7035cd8b6b6e6c6994d7
BLAKE2b-256 93c2c350802f22f78b55eafd806953dd37e17064a95e135f57aadc6081d94318

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d28933aa1242814ed737b569b2baf96e4d236c52be454b5dc17afd36bf893c12
MD5 c27f5b139c35a82836f9c279533eea65
BLAKE2b-256 13bbf63e8a0e38a6892f3f5ed6202b6e24c50a8598120ed2daf75c8415bdbd68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0d5a0edefdf800aeef6cf559af75e614fb2eb2d0388f0b132af805fdefcf8ec6
MD5 1af5deb49c518f6e3eff142e2a9a49f7
BLAKE2b-256 5c1eeb14946b6e78024c9371d4b834a165ca065391ee242d478aef674c6c3256

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fda1fc36dd923aee070d7aab3a85b448c8b62930900c615bb67db829281103b
MD5 f9aa95e0984a16718e3997198f7d508c
BLAKE2b-256 2e9de4880bab2c00f1354b1db70fd84cf360badfdb57e94c1f0ba2b67037d23c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1ef51012493837263236781ac9598f059dc4e5a4d72627bd3ac85cbd5d1b0ee1
MD5 7f751f4063eae9c2e233783fc27a988d
BLAKE2b-256 880060b21a1bd9f905a26b05edba7db9d476c77e1f400c7b8615b8c1eb6421fe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 267.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e87450db3c444f41e3ac6a09b7a10ddfe54fa1e98bf60ee299fe6d11097540cd
MD5 6eb6d3eb92bbee654b6c73dc8e66acef
BLAKE2b-256 72e036de8c428cfb1f711816470fa9da28ea68f495254dc62e3017f6b0c32cbb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp310-cp310-win32.whl
  • Upload date:
  • Size: 256.0 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 c455d886838dd5a248e7f06e5573275fc854febd206eb937cf632082a06a939f
MD5 94fcf4d296a43b1d8478f40750300068
BLAKE2b-256 1045e2d8ef3e5ad225937b793111bb7ad0c6825a57454fb9bc916f5b21240b69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 99780a0880d3dab2bb6f863492d38ab90ffdc9daf4fbefb505524f6f3a1c9dbe
MD5 0d091a92d364e016d22aa3cde8f13b68
BLAKE2b-256 afb2641758331548f171fbcddfd6f32f83e049ee93fe20a39725cd54fb7feda9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 ac402ac165f42f41b3aef9e8a9c6fb204dac31faad65b3b0ae6bff4bc9d0dad2
MD5 300721625a729a14762c7d44bb7733d4
BLAKE2b-256 e41377cb2583a366c7fea8082396c280a3a1c8021011cd259933f097d77ed9b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 ebf0776fdc7a5e0ac11b6db2d69ac77479411b627a96119ffa4427ba32f3bb66
MD5 8971473277faca8eb09e6ddfd3af83ee
BLAKE2b-256 c4373aa71aa11bc21efd618f148caeea0122050ff17a73bf76fee214f77193db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 2095acff95df0bf6ec3dee672a03d3d78606b4ca419d53fbd606c559cebedf45
MD5 a16a45e89290961067b25fb9f9a42560
BLAKE2b-256 9d397bb5510155462138ebea3fd47c062ef079bb46bb957cd90f6773787a3190

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 8418b0ee315555ca9786daab00ec8aaf47dfb2698a5be689676e83e88b949f22
MD5 9f5066920b4be205a2556fce12eab77c
BLAKE2b-256 b63ba2cdd542ae9273816d80510920cd9c82382ae06439f39f6e78a602e5e6f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3633a07ffeabc14f3cd531f11794bb603267d86e4109cb811a34aee020622d3f
MD5 ffc6b416bfbc5babeda791338fae9631
BLAKE2b-256 b334031b01104bbb56e85b10ad9a396e5c1fab81b29a748800f63e5abe8798d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3965a9ab13f1bf3e4af021c7dbe9678dd9f8dc5cc9097b3d3cbbf3ad00574b5d
MD5 86a6a73576c276bb6e27d00966d73adb
BLAKE2b-256 f76055aad6d2554a71705a209c056ecbf28515044e4d1ca681951f4a6753d4c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 376fa2ef6a02a004b6fe4ebaa5ba370e7532ec6915efd12e33aa434517f8bbee
MD5 f5c6237b67eeff74b4682f54a640757b
BLAKE2b-256 d128cb054f5ad66f8e81aedec637bb18be00b87bdac6713a95fdc5d13b91f50d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b7eb07d60c385aec906b82d48447907a2bbf454d0e9ead62168de111accabaf8
MD5 91f7a5e22ea466e3e5c0336f92fea465
BLAKE2b-256 c5dd404aa5be84d68855fd1fd443f32838fa80803d633c21920540c5d9b997e2

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-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-2023.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b48820071a49b68ca8734e8b2bd1f26632512154816b261b614e62cc724d9f8a
MD5 c81c338f79328b674cd318210c2b2d02
BLAKE2b-256 b0476f06ed9008f35174397204fc56bea2fbcac1d843ab4d15dcf6cfb22b5f4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9322797fddd51ec0312a8b649d9a3ebfabf4826a204ef8e1cc11801013005323
MD5 a4059cde160e98f58ce76543f1872bfb
BLAKE2b-256 26d78f2a8078a379f3c6ec3ca5d13b9f27249e1f4883349ac28676d5fb554776

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbc47670e0424a566084e15af9a253b85f90fa26e60fa07e1b10c90df4c8fd07
MD5 09a39df21b531d51e296d1e8825b7ed4
BLAKE2b-256 626de63fbfc497042bc63b67e78290711378ea4cb0fff17dabf9609948508d7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c1fa9651141caaafa0d6048695a4a04bc4bf39c75f250a36b1a05c9588a403a9
MD5 da41b18c6784a3fb7ff63d5d3f38eff8
BLAKE2b-256 8a5f4b178a1c1e50b668b3ae7da2e1a64ae77331d57dc7eba1a15150de2c9551

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 268.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cb22580ce5e2eee138a78df40444151ff51c91acd11be546216a046677c75593
MD5 89aab5a661e371f5f155eb85568b2e58
BLAKE2b-256 b051d4f159b33243f468fc4a4e0730ddc7b8edeae614d756eeb517ca1c6e5b41

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp39-cp39-win32.whl
  • Upload date:
  • Size: 256.0 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 97fd2885df308edcdf96baa632192a4291f3ed5b072c0bc3f29dc1e6de40ffa4
MD5 52636cfab3f759ce49c5e462766bb2a6
BLAKE2b-256 0ae77c13b09b81bb6c6baef2a53fc658784b01f874d2309a0e4e3d5399568769

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0c731522eaf74166066fcf91fe7fe3c3617cc5e8df0c150132282d0dd5225afc
MD5 1ea67ce65ae3ac09fce59b6d71bb7f99
BLAKE2b-256 5416bc7cdeaa8bd3b335c0bf381c99f735e0c349db61fee2a903f1852f1b93d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 50e00ab84396bfbeb1bede61eff6641f957b6532e74e02be480d71914e20e2ac
MD5 5098f76f29d6599b9476640ed00d8d99
BLAKE2b-256 011a4fb1c70672600cca37ba7e11c072ddaa1ecdc96e9c1d7eab0f7a9703e99b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 b87d38717ed855583ae1693f6095fc9c06b7dde4ddec782b41aa92931dd60e7c
MD5 b97036b59c7d5fc29f8e2aef150383e8
BLAKE2b-256 0a320ac260cfcddbd0421976e85f4f7eb1b7c9eee94520fa451d0d0c3c43f158

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e708e69c4d3bc41df29efb94aadc5578c841b2cd02f8cbb1bcfbf280f2801238
MD5 6e13035a9724c4b0ca7e4b4dd7387c62
BLAKE2b-256 af92c1b41690de10780e80e878570397c6476ca1e68a612c078acac96a95ccfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 0eee66c4ce6ced2e9d5d4497a569bab6257a6d118eb43dd57cceb61ba00b62d8
MD5 f6373ab0ff1f51454b8479efa532a469
BLAKE2b-256 0f9e09c6e02652cec2233f0f01633d3ab7ed916f688ebd5b51b62b77822c8201

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 91f47522688955cb33190f8354ccaa1cc058d05e73f99afe9ace40db36c159e8
MD5 38bd8d8046d835331cd4cec4f4d83ce0
BLAKE2b-256 a48c590b50ea391be247205713441fecb32b2aa050e833b89f2a814b2a7b2807

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 bda905e040e6c2875a7dde9652a9e0c426aaac6058568cc064f8128b061439ee
MD5 eb92913190755ab27e2902d78ec8ae6a
BLAKE2b-256 aa28324b556d8f5ec4a7d00e54ce362de3b1689697b0f0986073ff49ec9bd173

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 037f4be6a240a11a6d3397e932ef5d3ec5855858910792a0ab7d351bd0333533
MD5 1f03e70f20c526be358dc7687fedbe7a
BLAKE2b-256 89a6163269fca67d5aa0519d5961d1d92c988504441d6119215dc19481adbe3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b887d87188489859411d0c7e741f7dfe8a3ca5946b0db8b3c9e5daecc089b62
MD5 c2bd348156474e2646dfb3438ed3fb3a
BLAKE2b-256 5f256f7de88e18d4a2ce7ef5dc4e95401f85fdc54b1ecd1cb46f6c95cf4792d8

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-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-2023.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 04a825fd9f5931263eccd0cbdbf171a9792fa1bf2642ca62800b57689ca1b660
MD5 fb0f8a83d10793b2f45962189c9fd0e9
BLAKE2b-256 fdda071972ad34fac0237532254a9d3ad4b859537486b20b90f492a20d126b73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5a7ab3440f0c653dee8b42af858da6e07615c64ba86a6b3509a0ecf44eabdb11
MD5 98b6e8c5a81165ca56b790c4004025f9
BLAKE2b-256 48a556010ba4cab8a1c50f25f7a108fb114d7ae828e06bb19de97641ff15924d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a664857dd9b1076942c4d73c54a031066ee0ae88a438e7a1e0e79c1c5ddf47a
MD5 5a7b5b155892260ca332000cbe88b55e
BLAKE2b-256 c773388a37a3181f33b3a416b5d1bc3a13ac3894371214a80257cedc9c1026ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 49a77f0b62a4122cf578d1194658973c435e6d2a9611013be11b6750056a5930
MD5 ee48344e9c4641f5870ce358615d1472
BLAKE2b-256 053a0ffbdf689acc1efb09e025de44230e100881572b1ee6541c6e81a10d430b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 267.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6f02105d4a511f550dcd63f750937d1607a1f6dc253c798c4adf36aba89215a3
MD5 577746ed214ff086873aea257ed02422
BLAKE2b-256 09fdfde7450d2e63eff77540df7d1d597ef82dafc0940e0813f191eb00e2b8c9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp38-cp38-win32.whl
  • Upload date:
  • Size: 256.0 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 00f6f26e748c797a041ab6957f4cacc66a7fbd5dc5f627760985f5c5b7de2af6
MD5 cbbe09662c7fc7310f79eab74912cb2a
BLAKE2b-256 8db29fd4c711b3dc910493aa93ec0fb2b81cb926cb034f29ed76e013a7a8e9e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 aa92f9ad481108a7e4c5a5234608f7c718f8b67003ce4719a4d2735d82b54167
MD5 8ed0daad1e16b4d04819bc36bd62cc92
BLAKE2b-256 95db9fa301b8abd90b47cd6c90a8d181d76705f94b5403c0220483f7dbefdd2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 1dc5e9a847613679ac8bd0386a0e54f2958441a0fcc123778637e433041aa763
MD5 17c1c69fa8d7dda049fe72aeb072d487
BLAKE2b-256 412d33169d1bb13ed2b68150f27675e897f1fc24d4c80a313fb5d800e7bbc5ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 c40f7e8c02b287550166a3e36dbb89f9387db86a71101f6242668e3ef979cd2a
MD5 d4c90644dd4a5effbe0bde6eed17d760
BLAKE2b-256 3847a429a1d00496171362b8ae109a295b902824dd548ec24b92155a383836b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 dbcb49036a6a6065035ac2acc1ad6a918f9e09ef2d0f9392dc90b8756f789f95
MD5 acc81c01f73583c819e4905e33b2e42f
BLAKE2b-256 32b2506a122fe479f58a6614214909be2168cbfd3d9d3598ab232ed2ad60571f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 2762750332f57820c0f38ade87ce4ebe671b178892faed0112f574f0b42801cf
MD5 7c0e4fba06fd66857fbcd4100ca79306
BLAKE2b-256 1c652d0ed6c73ea9ecc371d403a51ae0e0859c0970122fd94d1c4b8d8e48cf43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea2d66c1fd898d81b8ce0f95afab9ba0ab522cf08810f11fa28ad958706cd2b2
MD5 e269bf0a983bd9ed20af4be0eaf2c40f
BLAKE2b-256 980cb7ee04449927abe07871a55bb335ab8acc520a73aa79540aa9001457f2fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d0ac14c36d91b191d1cb073fb5ac49937d88a5c8b051ced3875321a525202c34
MD5 bf793adb899b1fdf80aba4aae5e866ad
BLAKE2b-256 4b81ec8e57e1981f71598b1750cadbfb40f067dbf83cf6dc255d838af22ddb50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f2bc7249840faacfff6196e5b5ffeb3fdaf078986521a1cda34e9be5607e773b
MD5 7bf8471d23dee9f1f25c07a924108957
BLAKE2b-256 96eb88b9a00654b962a0080aefb34add4402993406feb4ff18643f195ddfeb75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8c704e7062c59d2f7e2eebda2c0c0b69bd807ca6579c3a21fc4b1d8505cfc090
MD5 3efbdc700c5d184f00f3fd8f7070eb9c
BLAKE2b-256 7ff42ae63513814b16204371d216d0e7534d6c4421b3db2bb8f62dbdc0a71f4a

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-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-2023.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ff8fef88029d0420315935041db517855ea022889fa8d54959943e39fffebf59
MD5 243fb576310f5dbd66a3f0b5d72a101e
BLAKE2b-256 abe1cbd88ac5426a97ec5a1f9d1f41094aa6b3d0fa9148bb0259dbd8cb382602

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0130a2fdd6f033c3e3710d0b950cc6abd3133c5af88c40c78e77641cb6f6cf8a
MD5 2fe800e13e26912c62a07af6372b8261
BLAKE2b-256 398686117b7889e38dee695dc60fd0f569fe47d8ff318318b1f421801a5e9154

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a98814d42282153c30d674ee34ea114a03ea8d32fd5d9b924d46fbeb2c7eb15
MD5 ef6f0785deacc858006c9b30e7e2fddf
BLAKE2b-256 3193f9f9b6f9c25a5086b83385fb400b408893856b667bd535f15c80a91e91ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5cc67b3562aada6682ae45f2ea40819baa6bffe38155883100f8779c22c8c087
MD5 7d6f1489062b75000c3f0637059001d1
BLAKE2b-256 c2873371dfa064d1354232089ab6bd2b9d05ce5d2d51785338eb2412ea8b4b63

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 6469c2baf450fd1e648752b113a1fc1d67dfbad359f6171be954bacf7b09d126
MD5 50568558cc9e9780880929c75e561359
BLAKE2b-256 21ff4ca3dcab09b13b0e9bb002e528987c6ce3310e6e1c92c5fbc28716371031

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.5.4-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 255.8 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 06fe9870165d4975a8a3e27a83919b9014b35dd2ee7061a5f2be8e579294cedc
MD5 541214e59b3fd9f04068fb552435768f
BLAKE2b-256 fea788cdcaaf6b61f977e927df302fb432925709b896f7087e030eb1f37401a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1ad00c9aae6090d052c0ee16a2737a7154031793e6c7b58a629eed8d8aa77e31
MD5 5c850f0c4fdc7edf66f45f1679192459
BLAKE2b-256 5d86e34d9cfa857258deba9c79c8011bcaae3a8ad31a581b8d951a9953836969

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 797bab57e1317c940030f3c15d48c01e1f16d12ba0f6a807ee0bebdc1cfe3f2d
MD5 f3d4c56e816b435f2f33e460eed917a3
BLAKE2b-256 63b89412699b5c16d7e99946c5cc9f96a921b77cdb2af8c3c469bee574166804

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 89f54d4bbd452a5ee01dc31ec918f7b1f32483f13d3598af1acf5ea82ad82ad3
MD5 8ec8b1c65e806db438ea2ff4ccdfffbb
BLAKE2b-256 789adf8680ae2117c4513f68dd0f90ac431551a4276450ab395571b244795518

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 24db1c0fc20850db47977824a99fdae81d6764adaf8192dd874185d9e7166dbb
MD5 1d106b5503668928644a0cd1f874b443
BLAKE2b-256 36db93cef84a8af277c8866c435dab0a2d4045d20549acc5f73593f6264c5fe3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5f82d4e0725788787216c9ae53116e6e477b2d97f29ec1e5086f5afbab5716b0
MD5 6c8fa41b82cb3da0436600a41ea0ee97
BLAKE2b-256 b7c33eec96b9b46ae3c241d607cf297d0e7fa5660878133f563d6dc38387da8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6686256d1d435ed782ff12ef11e074705911a40d3907b986e53ca9a996e88489
MD5 42c94fe7f5b2ac6553ae6099ec7403e5
BLAKE2b-256 cf777a215137960185b41ddbb1e74b84dedc66b8bc55e8c38c16d0ad87015b37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b365b8fa0d5fd0208db5b0e94582edb796dde07d1f99c5a9c1ff6be172c374ee
MD5 f4a58db044df9e2e6a9330271e9ad1cd
BLAKE2b-256 b471c41e92c996ae338fcedcebf8eb3ea155379ef9acbc96641c40364d51c11a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a419384c6c80d58532016c3cf6a3aca009bfb7661f33e119ba7f77ec0e28222a
MD5 b09d7d9fbf02a89148aa00cc039a5cf6
BLAKE2b-256 1017b87bb3cb3752e6dfd55b8590c991a8c92c1bf4dd2674c0132124272e2e1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c300461ed8159f61d979971ba51f1acd1e6f9907d86888e9275165e06ea90f06
MD5 3c17b654d7e291c0703e97b461cba98f
BLAKE2b-256 f3eed8bc48c2773afa2c0ac10f31163f5d119703cee146a2a766365391406037

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-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-2023.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5d321dd059fd00482537aaba919e29189ea4ab6a03528881267982bb7707f610
MD5 b0f445c4f23c8febcd3568d1bedb909b
BLAKE2b-256 965bc94cb87614eb47ae4c5f12fcfa17a638ac83a2b8f69832585f4bcc5b8a02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c10b1388106447db0cdb8e340d06fa2d49b822368a049c36928d3c24296c2e37
MD5 ab964452ca61dd4c794bc9209a6983ee
BLAKE2b-256 951cb8628add2fe7f56951a2349d6b91503388fd2141718683da21d0f5c5e307

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.5.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b132e4507c6404faece005329de7b2b97653ddfeeaf84f058fe820791160dcda
MD5 bc43bf9f6833a590997ab94a23cba689
BLAKE2b-256 5f2446cd7ea6169df6e15ba10d4947e490e6e952bd00c2de44afe7fbf3aba525

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: regex-2023.5.4-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 279.7 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 027d4962340dbd84979fd1c40bfd7ca8362030abfbbff25f1327bbf4867f047c
MD5 1f6b0ef9324b9035b789e0cce95c3609
BLAKE2b-256 756e664a14843220cef3b593371a51f4a26fd2fc439475d9be3002cef468ecbe

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-win32.whl.

File metadata

  • Download URL: regex-2023.5.4-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 262.7 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 8d5bc5035989852a4ae7dacf8dc99db7c4f21c852486777a98b8efe37af4d8d7
MD5 a07e4396b3987a8b210456d6c9b8fd51
BLAKE2b-256 d22fdeae077e7e23a9810eb5aa2bc82a820e50fe627ea06217f060e736b552ff

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 12be293d718e05f7304f715980b1a25b16e34a1ff2121740592559d066f91e67
MD5 1d32de7837b7a96218e137d519284e5b
BLAKE2b-256 03ccba5ea5adbc905457657003a32121c01e6576385e6cec223bc31f922e950b

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 1d98e4748a60c9902ad504e862756c43cc707404fc3025f82ef5bbe50bee3b9e
MD5 9f438d2016356db93bf80a864ff3a52e
BLAKE2b-256 aea6ba2eef76ec8bbeb9f78610591d5c5a71866b01823763193c43b207b6c745

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 c1155571edd498b6274f969517db6781500fbb24fc91ff740ea5a37c4735b3ba
MD5 abadf17281f94f9737e4ef00caa35958
BLAKE2b-256 87482adbdffb16e8a4c0545df46e65b3f288f81f3c941e9bb41f847d5882e52c

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 77b3333a6cd1161b81bcf018a9bdb3cc567074a913aa69b98b9c8c79be28565c
MD5 b2400a23553ffce34fa4e14200afe917
BLAKE2b-256 b7bc6880c51cc766db336f1d8aa2a34bcf7549c439d3da65822cb9923644f195

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 953ba37dd83c424c2cf699c64a8477645fc7c7403ffd2eb1417189eddbbfb4a7
MD5 aac56b72be17319f983aa270cd3b966b
BLAKE2b-256 4c06bf3ed4b16c629b63768d51e5a4e239feea1607ae5be46279aa5c83e267d8

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 770f825c7751ce43aae2088fee94f2e60f95e181223642a0bb35cbaeea92001c
MD5 b86019755f37d5c430957a1c9721b9a8
BLAKE2b-256 58aff6d7b31c8a5932b39a6cdc75906f612c5e1dae222a73780c5806a5ad86c0

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ad84e1d4be3504e7dcd6370b3e847eaf05d5d35cb0818d0bd2d1a26b58c0abd2
MD5 15cbfba3564aa08514ba0d669c520094
BLAKE2b-256 399338f46dd02c89fc373c31f14a5df945384e040407a391365d5d9c8f49e180

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 eaff21326bc5d9be0c2f400931d39274105bd5d06650f0b0215392d1b050d404
MD5 2ce352a0c68e8bed6444887f28377356
BLAKE2b-256 a30e170b3720d68baf866f7de484aa694e4dab2e2abc89927a563a7c59082de3

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f3e20cf2575b1330687d3dd6242f82278b3bdc09a9f36cc7ac4d45b7dd63c1f5
MD5 33b535ef8440d948c7bdda797438ffd4
BLAKE2b-256 cd81bf87ef23e4e11f7daeaa3349ba711122e2bf02ed8b49a6bfef53a33fb5b6

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 460672c6ec94997755bd37b00302853b9d85a5a433121c198359958e8c10ced5
MD5 65622c5e179353ceacd68e8e58f0bbfc
BLAKE2b-256 c07a0e302d0be5268a6703e90ec9b9b67b2c655f1aad3f7ca90316204e89355e

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 70bd0c121b3c4e641e5c4e633c4581059acad774a1a62bcb15fea3470c2a61cc
MD5 edd0dafd173efa038069bf1b7b5cf84a
BLAKE2b-256 069083e9bbd99f9aca188c717f11609c809b932ca30444eb911f7876f2e366c8

See more details on using hashes here.

File details

Details for the file regex-2023.5.4-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for regex-2023.5.4-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6ccd0d7557c4e76303a6429ec9de55cd87334809cda66c0f101831e2ce9073c1
MD5 fa361becba5629aecb91a2c83de8ac44
BLAKE2b-256 4ccfe97d56347b8876b12ac527e1f141bed66f6aba01f8a76e0072e375f01d76

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