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

Uploaded Source

Built Distributions

regex-2023.8.8-cp311-cp311-win_amd64.whl (268.3 kB view details)

Uploaded CPython 3.11 Windows x86-64

regex-2023.8.8-cp311-cp311-win32.whl (256.3 kB view details)

Uploaded CPython 3.11 Windows x86

regex-2023.8.8-cp311-cp311-musllinux_1_1_x86_64.whl (750.4 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

regex-2023.8.8-cp311-cp311-musllinux_1_1_s390x.whl (773.7 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ s390x

regex-2023.8.8-cp311-cp311-musllinux_1_1_ppc64le.whl (768.0 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ppc64le

regex-2023.8.8-cp311-cp311-musllinux_1_1_i686.whl (735.9 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

regex-2023.8.8-cp311-cp311-musllinux_1_1_aarch64.whl (747.4 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

regex-2023.8.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (782.4 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

regex-2023.8.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (807.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

regex-2023.8.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (820.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

regex-2023.8.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (781.5 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

regex-2023.8.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (770.3 kB view details)

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

regex-2023.8.8-cp311-cp311-macosx_11_0_arm64.whl (289.3 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

regex-2023.8.8-cp311-cp311-macosx_10_9_x86_64.whl (294.9 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

regex-2023.8.8-cp310-cp310-win_amd64.whl (268.3 kB view details)

Uploaded CPython 3.10 Windows x86-64

regex-2023.8.8-cp310-cp310-win32.whl (256.3 kB view details)

Uploaded CPython 3.10 Windows x86

regex-2023.8.8-cp310-cp310-musllinux_1_1_x86_64.whl (741.7 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

regex-2023.8.8-cp310-cp310-musllinux_1_1_s390x.whl (765.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ s390x

regex-2023.8.8-cp310-cp310-musllinux_1_1_ppc64le.whl (761.4 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ppc64le

regex-2023.8.8-cp310-cp310-musllinux_1_1_i686.whl (728.5 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

regex-2023.8.8-cp310-cp310-musllinux_1_1_aarch64.whl (741.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

regex-2023.8.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (771.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

regex-2023.8.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (797.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

regex-2023.8.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (812.5 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

regex-2023.8.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (771.3 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

regex-2023.8.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (687.5 kB view details)

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

regex-2023.8.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (760.5 kB view details)

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

regex-2023.8.8-cp310-cp310-macosx_11_0_arm64.whl (289.3 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

regex-2023.8.8-cp310-cp310-macosx_10_9_x86_64.whl (294.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

regex-2023.8.8-cp39-cp39-win_amd64.whl (268.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

regex-2023.8.8-cp39-cp39-win32.whl (256.3 kB view details)

Uploaded CPython 3.9 Windows x86

regex-2023.8.8-cp39-cp39-musllinux_1_1_x86_64.whl (741.4 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

regex-2023.8.8-cp39-cp39-musllinux_1_1_s390x.whl (765.4 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ s390x

regex-2023.8.8-cp39-cp39-musllinux_1_1_ppc64le.whl (760.8 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ ppc64le

regex-2023.8.8-cp39-cp39-musllinux_1_1_i686.whl (728.0 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

regex-2023.8.8-cp39-cp39-musllinux_1_1_aarch64.whl (741.5 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ ARM64

regex-2023.8.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (771.4 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

regex-2023.8.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (796.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

regex-2023.8.8-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (812.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

regex-2023.8.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (770.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

regex-2023.8.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (687.0 kB view details)

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

regex-2023.8.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (760.0 kB view details)

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

regex-2023.8.8-cp39-cp39-macosx_11_0_arm64.whl (289.3 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

regex-2023.8.8-cp39-cp39-macosx_10_9_x86_64.whl (294.9 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

regex-2023.8.8-cp38-cp38-win_amd64.whl (268.3 kB view details)

Uploaded CPython 3.8 Windows x86-64

regex-2023.8.8-cp38-cp38-win32.whl (256.3 kB view details)

Uploaded CPython 3.8 Windows x86

regex-2023.8.8-cp38-cp38-musllinux_1_1_x86_64.whl (749.7 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

regex-2023.8.8-cp38-cp38-musllinux_1_1_s390x.whl (768.6 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ s390x

regex-2023.8.8-cp38-cp38-musllinux_1_1_ppc64le.whl (766.7 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ ppc64le

regex-2023.8.8-cp38-cp38-musllinux_1_1_i686.whl (735.6 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

regex-2023.8.8-cp38-cp38-musllinux_1_1_aarch64.whl (746.2 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ ARM64

regex-2023.8.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (774.3 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

regex-2023.8.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (799.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

regex-2023.8.8-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (815.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

regex-2023.8.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (774.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

regex-2023.8.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (693.3 kB view details)

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

regex-2023.8.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (762.1 kB view details)

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

regex-2023.8.8-cp38-cp38-macosx_11_0_arm64.whl (289.2 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

regex-2023.8.8-cp38-cp38-macosx_10_9_x86_64.whl (294.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

regex-2023.8.8-cp37-cp37m-win_amd64.whl (268.7 kB view details)

Uploaded CPython 3.7m Windows x86-64

regex-2023.8.8-cp37-cp37m-win32.whl (256.2 kB view details)

Uploaded CPython 3.7m Windows x86

regex-2023.8.8-cp37-cp37m-musllinux_1_1_x86_64.whl (730.5 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

regex-2023.8.8-cp37-cp37m-musllinux_1_1_s390x.whl (754.9 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ s390x

regex-2023.8.8-cp37-cp37m-musllinux_1_1_ppc64le.whl (753.3 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ ppc64le

regex-2023.8.8-cp37-cp37m-musllinux_1_1_i686.whl (721.5 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

regex-2023.8.8-cp37-cp37m-musllinux_1_1_aarch64.whl (729.6 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ ARM64

regex-2023.8.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (759.0 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

regex-2023.8.8-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (784.3 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

regex-2023.8.8-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (798.7 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

regex-2023.8.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (757.7 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

regex-2023.8.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (678.7 kB view details)

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

regex-2023.8.8-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (746.8 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

regex-2023.8.8-cp37-cp37m-macosx_10_9_x86_64.whl (295.3 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

regex-2023.8.8-cp36-cp36m-win_amd64.whl (280.4 kB view details)

Uploaded CPython 3.6m Windows x86-64

regex-2023.8.8-cp36-cp36m-win32.whl (263.2 kB view details)

Uploaded CPython 3.6m Windows x86

regex-2023.8.8-cp36-cp36m-musllinux_1_1_x86_64.whl (733.1 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

regex-2023.8.8-cp36-cp36m-musllinux_1_1_s390x.whl (754.9 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ s390x

regex-2023.8.8-cp36-cp36m-musllinux_1_1_ppc64le.whl (753.4 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ ppc64le

regex-2023.8.8-cp36-cp36m-musllinux_1_1_i686.whl (720.6 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

regex-2023.8.8-cp36-cp36m-musllinux_1_1_aarch64.whl (729.8 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ ARM64

regex-2023.8.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (759.1 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

regex-2023.8.8-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl (784.7 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ s390x

regex-2023.8.8-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (798.1 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ppc64le

regex-2023.8.8-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (756.3 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

regex-2023.8.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (678.1 kB view details)

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

regex-2023.8.8-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (747.5 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

regex-2023.8.8-cp36-cp36m-macosx_10_9_x86_64.whl (295.4 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: regex-2023.8.8.tar.gz
  • Upload date:
  • Size: 392.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8.tar.gz
Algorithm Hash digest
SHA256 fcbdc5f2b0f1cd0f6a56cdb46fe41d2cce1e644e3b68832f3eeebc5fb0f7712e
MD5 e3f24566266bdf4a6fbc581ca5a1ba20
BLAKE2b-256 4f1d6998ba539616a4c8f58b07fd7c9b90c6b0f0c0ecbe8db69095a6079537a7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 268.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 51d8ea2a3a1a8fe4f67de21b8b93757005213e8ac3917567872f2865185fa7fb
MD5 479d659382b2c8c343d37feae6a21b31
BLAKE2b-256 decdd80c9e284ae6c1b2172dacf0651d25b78ee1f7efbc12d74ea7b87c766263

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp311-cp311-win32.whl
  • Upload date:
  • Size: 256.3 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 942f8b1f3b223638b02df7df79140646c03938d488fbfb771824f3d05fc083a8
MD5 8c86b171875ec46159edc8d50283b071
BLAKE2b-256 dcd0d3fdf0f0c49a82d8c3f766143a3773e4d2907d583c335cb54c5f1722073b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3b8e6ea6be6d64104d8e9afc34c151926f8182f84e7ac290a93925c0db004bfd
MD5 173d950e8d8f3e5b93e1945bed00477d
BLAKE2b-256 5c8a274b998260e01137ad83367a2a99d5e6ac7293360a8f871205ff576ff029

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 40f029d73b10fac448c73d6eb33d57b34607f40116e9f6e9f0d32e9229b147d7
MD5 063acac1ab7e238d12c002bee297ae7d
BLAKE2b-256 7bba2a341aae5577c72b4f3d19231876dfdac614297be8f58a526b7ba5691b21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 7ce606c14bb195b0e5108544b540e2c5faed6843367e4ab3deb5c6aa5e681208
MD5 4a9f44b8fc74c07b51b44562605256bd
BLAKE2b-256 3fde3c7dccfe14b915c7dce1ab884ec6b886ea99732dea2b379c20bdbbd743bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 964b16dcc10c79a4a2be9f1273fcc2684a9eedb3906439720598029a797b46e6
MD5 21fd2ef9b50b9b5c840546027facf171
BLAKE2b-256 721d86eda62c8d69a793e1c88eec9027cf6173c5129b822f7bf31bba59937a0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 0085da0f6c6393428bf0d9c08d8b1874d805bb55e17cb1dfa5ddb7cfb11140bf
MD5 19fb5ebb784ca0172aac54dd079d3797
BLAKE2b-256 d02fed8b8a80498654d95df377b3d2121cb1581a23eaa3f21bda1d0897bd24d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14dc6f2d88192a67d708341f3085df6a4f5a0c7b03dec08d763ca2cd86e9f559
MD5 b482f09ddb08ab81e2db51320335f212
BLAKE2b-256 2c8d3a99825e156744b85b031c1ea966051b85422d13972ed7cd2cd440e0c6c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 9b7408511fca48a82a119d78a77c2f5eb1b22fe88b0d2450ed0756d194fe7a9a
MD5 f8ff24ea0e2fd191dfbd8d56deb6de20
BLAKE2b-256 a625a91a8b1e68bc9d5174d4c0cef3d02718d3f66bc4fdf81900ff9b831cc604

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e7a9aaa5a1267125eef22cef3b63484c3241aaec6f48949b366d26c7250e0357
MD5 acf7b871d61d35ff9201fadbeb314779
BLAKE2b-256 7215e5eb6904b9aa5e43c30a8f9e5161e91f7612286146f5ffe4aec03e596f5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 06c57e14ac723b04458df5956cfb7e2d9caa6e9d353c0b4c7d5d54fcb1325c46
MD5 48b7fd6053bd4f9a189b940cb1aed290
BLAKE2b-256 f63bda0523268434bdcf88e3e3d8f8e43d49f98929ee3d4312e850cc5e04f7c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 48c640b99213643d141550326f34f0502fedb1798adb3c9eb79650b1ecb2f177
MD5 50937f193407c351ea194282cbc4a451
BLAKE2b-256 1fff9ff179e9a29f37e3bd6371c3803b1a0dd7481682b5c40d1909b982fd6023

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce0f9fbe7d295f9922c0424a3637b88c6c472b75eafeaff6f910494a1fa719ef
MD5 691ffaf92e3f7e5a9ef41b0a799b38e2
BLAKE2b-256 035e9a4cabe86a3b4e67bd2cf795a2e84de01c735c8c1c1d88795425847ccbbe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1e7d84d64c84ad97bf06f3c8cb5e48941f135ace28f450d86af6b6512f1c9a71
MD5 8613ae2a7cf797e2ad6a05efe2a65977
BLAKE2b-256 db887c35fafe46fda07246c143a106f71880c3368ac5ef3beef89cc17b3bf12c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 268.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b82edc98d107cbc7357da7a5a695901b47d6eb0420e587256ba3ad24b80b7d0b
MD5 96dd067247a7711bf1cc04d24148c4d5
BLAKE2b-256 e67c96a44dabe8577f43ac34e34d0ac098ee42390a06fee4cbe8b5317ecf2520

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp310-cp310-win32.whl
  • Upload date:
  • Size: 256.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 80b80b889cb767cc47f31d2b2f3dec2db8126fbcd0cff31b3925b4dc6609dcdb
MD5 19a68906f2d730dd557c4f4ef26a0eb9
BLAKE2b-256 77b90a565952c3f42eee509a511ba117ba90f8a1283427df3440008307204c23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7aed90a72fc3654fba9bc4b7f851571dcc368120432ad68b226bd593f3f6c0b7
MD5 d2614c347012becc17c3d8da95fc110a
BLAKE2b-256 41f280479a33f7303337605739f84796650b90348dcaed178669277916ccb814

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 bd3366aceedf274f765a3a4bc95d6cd97b130d1dda524d8f25225d14123c01db
MD5 ccaac4ec522ed0b472a6ead14ae45db6
BLAKE2b-256 a34c0d07f8bfd9a9c6c12a1908dd74baecf9c3766a09b0d46c1be91b387413ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 d9b6627408021452dcd0d2cdf8da0534e19d93d070bfa8b6b4176f99711e7f90
MD5 ecf468c4bf30cbb0080b43a597ebe787
BLAKE2b-256 fefd1ec45424f133adcaa1b7f311da9f9b9a569754f3790e3de2cf9804bea776

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 ca339088839582d01654e6f83a637a4b8194d0960477b9769d2ff2cfa0fa36d2
MD5 5cb9599d8badf7be79a52d165d131322
BLAKE2b-256 5dbb300535d12b75ff4d32f560ac2ca268d2963b1cb38012c8ba752d6fd2678e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 3ae646c35cb9f820491760ac62c25b6d6b496757fda2d51be429e0e7b67ae0ab
MD5 8824a0bfbbfec6756e2b6ba2c433c9d6
BLAKE2b-256 1989e5297cc72196586ca77bda48d58de4ae6517ed1d6a54f1b721eb13ead176

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 551ad543fa19e94943c5b2cebc54c73353ffff08228ee5f3376bd27b3d5b9800
MD5 a828bfa6c50f87752b5e63ea4439adfb
BLAKE2b-256 d1df460ca6171a8494fcf37af43f52f6fac23e38784bb4a26563f6fa01ef6faf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 cf0633e4a1b667bfe0bb10b5e53fe0d5f34a6243ea2530eb342491f1adf4f739
MD5 817106ce9153a6cfb8b889e213d2b031
BLAKE2b-256 b31b2ded0528ec45654b56f63603d25229e25025ca133249c6d99dcb2432810f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c662a4cbdd6280ee56f841f14620787215a171c4e2d1744c9528bed8f5816c96
MD5 a9dc2cd90401f5e975e15755a13b05a6
BLAKE2b-256 e0a1970a9cafeeecb63f65ea7f434d46b1296899f0f59a566d97c5ccb329a1b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8a0ccc8f2698f120e9e5742f4b38dc944c38744d4bdfc427616f3a163dd9de5
MD5 e31d031ccca56ebafe55e2bff954bf26
BLAKE2b-256 6a135643f002d9d5388361a20d6a35c88d1edc876f72e34235ad710067edfdeb

See more details on using hashes here.

File details

Details for the file regex-2023.8.8-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.8.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5ec4b3f0aebbbe2fc0134ee30a791af522a92ad9f164858805a77442d7d18570
MD5 c595750e7ea01197a0ad79f2bba52673
BLAKE2b-256 d8e541f5cb1d6a92953ba615dd15c37f3d52c67b5c092123fedf5c8bc3ea0ead

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 54de2619f5ea58474f2ac211ceea6b615af2d7e4306220d4f3fe690c91988a61
MD5 d353440380f4d4c6f0ba235ff0a3bea4
BLAKE2b-256 dad5fdd5811c3001f6413f2bec5177ba3b428c3da5fe396d06aea70a8ef237b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3611576aff55918af2697410ff0293d6071b7e00f4b09e005d614686ac4cd57c
MD5 859360fd0455aa79c64b051e8bd82581
BLAKE2b-256 3dc8291695b48e372a40d40c25e2740e375506e7e9644ab84775571b8cc0455f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 88900f521c645f784260a8d346e12a1590f79e96403971241e64c3a265c8ecdb
MD5 ac8cbdcb9107a90305754e24f3eaf345
BLAKE2b-256 6b208a419181449227182d61908484477d23d01b2b35211a45e838b746da8bb4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 268.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5543c055d8ec7801901e1193a51570643d6a6ab8751b1f7dd9af71af467538bb
MD5 0c2053fb0d8c94960456a551076cb745
BLAKE2b-256 043012624697d49c42a4f011035c9948c3d829eaddd01e20966ec5ae7556d84c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp39-cp39-win32.whl
  • Upload date:
  • Size: 256.3 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 6ab2ed84bf0137927846b37e882745a827458689eb969028af8032b1b3dac78e
MD5 ecb489f3414303be453a1f804651c199
BLAKE2b-256 15d5890bca509463165282f163d6a068e812d3ef0fabb530665d155964e7096c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9691a549c19c22d26a4f3b948071e93517bdf86e41b81d8c6ac8a964bb71e5a6
MD5 e13e1fc053cf79bd7e618dea81bfc102
BLAKE2b-256 4e06ac989602014d11bf30a26a549e13510e14521dba1c02cc2d8f3a0bfe42a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 f2200e00b62568cfd920127782c61bc1c546062a879cdc741cfcc6976668dfcf
MD5 33fd529813c0580ef7d0e3861d886b3c
BLAKE2b-256 b4072d7095c171f2ae76eac0147d70f3ce8665c276ff6c4ca17f3514672155c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 14898830f0a0eb67cae2bbbc787c1a7d6e34ecc06fbd39d3af5fe29a4468e2c9
MD5 395b7bc511089abe1be3b9892c75c3d9
BLAKE2b-256 6c8cef17935db4bc4e524ea229c472c7640ade8a2a94d5abac9012b4a244efc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 67ecd894e56a0c6108ec5ab1d8fa8418ec0cff45844a855966b875d1039a2e34
MD5 b73db11da0ff707f531be04b786b8b71
BLAKE2b-256 3fd9e16dc4ca1d35a8e10fcef2912e439427451966a692f7cb848dd27ee6575b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 988631b9d78b546e284478c2ec15c8a85960e262e247b35ca5eaf7ee22f6050a
MD5 5fa31b15bac3281d727ad40c451fd2d7
BLAKE2b-256 e51a83c116f6fdf5d980b85ca824b7a128174aee516bae5c958d4a4db75278b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7098c524ba9f20717a56a8d551d2ed491ea89cbf37e540759ed3b776a4f8d6eb
MD5 3bf0a4670c8fafb141f4daf9b02246bd
BLAKE2b-256 c0f4278e305e02245937579a7952b8a3205116b4d2480a3c03fa11e599b773d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7eb95fe8222932c10d4436e7a6f7c99991e3fdd9f36c949eff16a69246dee2dc
MD5 e9136b9e81a671962c64e8cd1a4e0eae
BLAKE2b-256 01fb8e5bbe49c8a65098255b36ae83af2246bb0a101774aac3448a64319c8cc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 9dd6082f4e2aec9b6a0927202c85bc1b09dcab113f97265127c1dc20e2e32495
MD5 5a0bc433143a2100912e3e17e0641531
BLAKE2b-256 f685283e7bb16ba6a154555b6dfffcdd131f9e70c483a5e2ae66d2d54a210798

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 987b9ac04d0b38ef4f89fbc035e84a7efad9cdd5f1e29024f9289182c8d99e09
MD5 50edcfac4e1d940ab774daeb88102b2f
BLAKE2b-256 536520ed9ac1bb5773890008ef8d36889e5e5a78b9b43da2e3360f4ad1fef03b

See more details on using hashes here.

File details

Details for the file regex-2023.8.8-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.8.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b2aeab3895d778155054abea5238d0eb9a72e9242bd4b43f42fd911ef9a13470
MD5 a7c076fc1ce0316d51045ac9ad878582
BLAKE2b-256 066fe91bd0f4e1c5219a4ee781acdc12433468376c4fc9f2626da4ab06516553

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4b694430b3f00eb02c594ff5a16db30e054c1b9589a043fe9174584c6efa8033
MD5 b7e39cc4744f5484429d5d459c3c1b30
BLAKE2b-256 981eafb79b2f8ee24c68a8f581ac73f47861df32f663281e3387118eaa88b4a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb34d1605f96a245fc39790a117ac1bac8de84ab7691637b26ab2c5efb8f228c
MD5 acbf35ea46a063bf3b0b7be1047e6411
BLAKE2b-256 fe613e64c3a4eb93d70d09e1f32185bbc9c15631d294471835f542222bd5a01d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 82cd0a69cd28f6cc3789cc6adeb1027f79526b1ab50b1f6062bbc3a0ccb2dbc3
MD5 d17d456615ccfb0731e4162b3fee354f
BLAKE2b-256 c4bdcfe0e5e851d7cfb529b2227c08858e1148ac4a011b805e371eda4cfc52c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 268.3 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c12f6f67495ea05c3d542d119d270007090bad5b843f642d418eb601ec0fa7be
MD5 a4e128993b84f1499f534d1d88852079
BLAKE2b-256 267e69ea9212922e7b5150e81ba9fdd1981267ed9924b1c40fd38febb001585f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp38-cp38-win32.whl
  • Upload date:
  • Size: 256.3 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 0c59122ceccb905a941fb23b087b8eafc5290bf983ebcb14d2301febcbe199c7
MD5 16b3b54d6724aee9f0de12582970fa0d
BLAKE2b-256 a65f27676c1e11cb45b7fe9e6c924b3032b5152d4e2eb229fc33ddbea0d7d791

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f0640913d2c1044d97e30d7c41728195fc37e54d190c5385eacb52115127b882
MD5 ca7a7f2bdccdb6acb4d11e30d1bcd3df
BLAKE2b-256 64db1ed23b4f18732aa871180b94d557b474a48826c1489bb6228cebfac93195

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 3f7454aa427b8ab9101f3787eb178057c5250478e39b99540cfc2b889c7d0586
MD5 e8d67e299f491b9e07ff6b06092a76d0
BLAKE2b-256 3e48634d37853bf486cf96264322916da245da6a26917f62600d4039c910c72d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 83215147121e15d5f3a45d99abeed9cf1fe16869d5c233b08c56cdf75f43a504
MD5 23fe76328431b1babb3da586d0f70756
BLAKE2b-256 abd186db399b1b3289a69d5e9df2ad3b112fa21a936ef5b69ffd575d892ce3d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 cf9273e96f3ee2ac89ffcb17627a78f78e7516b08f94dc435844ae72576a276e
MD5 3a7e4fe4f17bb8c197cd0b68e24255e0
BLAKE2b-256 9cecb8da21f079a340d0a1af042a5d97fbcc6b7900d7deb7e2ceea8a79762f4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c884d1a59e69e03b93cf0dfee8794c63d7de0ee8f7ffb76e5f75be8131b6400a
MD5 f965a57b69b956e9c17f1f347315cfbd
BLAKE2b-256 c984b9ab39fa746eea176315c5e94e2fb15499f159f3b362c63796cfb3e6c147

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96979d753b1dc3b2169003e1854dc67bfc86edf93c01e84757927f810b8c3c93
MD5 09e25c8864e2b5b1c4a81d56d2731de6
BLAKE2b-256 1f5c374ac3fa3c7ed9a967ad273a5e841897ef6b10aa6aad938ff10717a3e2a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 cd2b6c5dfe0929b6c23dde9624483380b170b6e34ed79054ad131b20203a1a63
MD5 7230c60812d2abd4d405121ef273ed23
BLAKE2b-256 437583fff731c6192a010f3a317bd29a7b5267765e55b82e460fc383a6d6775f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 920974009fb37b20d32afcdf0227a2e707eb83fe418713f7a8b7de038b870d0b
MD5 e38159a9551493025d50756c9dc75fb1
BLAKE2b-256 190698b1b31bf60abba1726366f0a7db3282868ec1df9a20578e08369b4b1421

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9233ac249b354c54146e392e8a451e465dd2d967fc773690811d3a8c240ac601
MD5 331ace0903f575d55ee07d2ef343424a
BLAKE2b-256 713ad4ec13c70eb8f0d0f2f1d92d1ce8c0a5e7790b51a10b4d4a5432493010c2

See more details on using hashes here.

File details

Details for the file regex-2023.8.8-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.8.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2162ae2eb8b079622176a81b65d486ba50b888271302190870b8cc488587d280
MD5 05b0311c1d9052a229e79bf97073ab83
BLAKE2b-256 3d2d66babf882d341b01b4728d06adf0d5078a8f165f8aff230d503c5f3e9d03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2ae54a338191e1356253e7883d9d19f8679b6143703086245fb14d1f20196be9
MD5 ffdddcb96a60f7e0bbb7380a23108792
BLAKE2b-256 d945a21f40ace9382939bf7a9bf35f4958a85a1c4eeb1e592b1317d5ac748445

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2ad5add903eb7cdde2b7c64aaca405f3957ab34f16594d2b78d53b8b1a6a7d6
MD5 327cb4dff1b331e06713c59cb1378d76
BLAKE2b-256 e072e1f668b4a333b47007465978ab4a22ce8140794ad65b34c12a598d1356a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f2181c20ef18747d5f4a7ea513e09ea03bdd50884a11ce46066bb90fe4213675
MD5 7baade18e8040c454f72be0744d1fee4
BLAKE2b-256 14256c92544ec70c8e717739a05e9908caaf0e03f8be7b8b689ff500ee6ae98d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 9a96edd79661e93327cfeac4edec72a4046e14550a1d22aa0dd2e3ca52aec921
MD5 eb329579ae9ede94683c7c73d57da5d0
BLAKE2b-256 6421c5402d143620ca096b2fcf8855f65cf04c42e934c020cd65772fe03a690d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 256.2 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 e6bd1e9b95bc5614a7a9c9c44fde9539cba1c823b43a9f7bc11266446dd568e3
MD5 b2e1c090cded000d64eb797dba158edf
BLAKE2b-256 4e1bfff7cc60fad938603cb136d924375bc14069c0641e380888ebefe79ac59d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1005c60ed7037be0d9dea1f9c53cc42f836188227366370867222bda4c3c6bd7
MD5 4d62ec655e71bd0124853e8d9fe359a1
BLAKE2b-256 d794ee7d3511e862544627446f2d4a72e2c20d73d7e5a16b59adcd1ce68c5476

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 239c3c2a339d3b3ddd51c2daef10874410917cd2b998f043c13e2084cb191684
MD5 d3966eb78a73fb1728bf0f41ef85d8ea
BLAKE2b-256 9688a56dc7ee2584f2cf0b39a91d2c4d4598e1e45769408edc092737d4eb6af7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 4873ef92e03a4309b3ccd8281454801b291b689f6ad45ef8c3658b6fa761d7ac
MD5 298c40000ade4cbca6b31f61b07e1a9e
BLAKE2b-256 f6a05e7053639760e657acf7577b8803293be58b74774f11b2c3405918beb8cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 5cd9cd7170459b9223c5e592ac036e0704bee765706445c353d96f2890e816c8
MD5 0f13f660626925128eb9962b24686305
BLAKE2b-256 65b1c37d4c5441dbcce8bebaadee6735f9e3220abac9f249b7cf40df0ffae816

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 2e9216e0d2cdce7dbc9be48cb3eacb962740a09b011a116fd7af8c832ab116ca
MD5 68b309015e711349379fee498aa38c6e
BLAKE2b-256 cc852d24228d276b1f10da2f7949e6bd140681085d0156a99be6cf1d0ef3ad5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e73e5243af12d9cd6a9d6a45a43570dbe2e5b1cdfc862f5ae2b031e44dd95a8
MD5 44d787a096ee688a257492e0df314931
BLAKE2b-256 6378ed291d95116695b8b5d7469a931d7c2e83d942df0853915ee504cee98bcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 09b7f4c66aa9d1522b06e31a54f15581c37286237208df1345108fcf4e050c18
MD5 5fffdba63989a83949d7dbbd58d95b62
BLAKE2b-256 66b00b439f376a6e9b8c4e2b0245dc72f2e79528a6d55a69fa25ab0c5e8db29f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e51c80c168074faa793685656c38eb7a06cbad7774c8cbc3ea05552d615393d8
MD5 e89bfde29948bce1d6baeab52f91e1b8
BLAKE2b-256 d67b8f2a7a6fefcbd4ddfee42655dea32fab7618b8b0b1881fca1de44fbf870b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4ae594c66f4a7e1ea67232a0846649a7c94c188d6c071ac0210c3e86a5f92109
MD5 8212a620305de44086c22ae1dd92b4b9
BLAKE2b-256 6086dd8294f5ef137ec422530ba333ed4d090e96a3093c50b1dce3de6b2badfa

See more details on using hashes here.

File details

Details for the file regex-2023.8.8-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.8.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f0ccf3e01afeb412a1a9993049cb160d0352dba635bbca7762b2dc722aa5742a
MD5 9591392a9a9420d5c7b8017995c04986
BLAKE2b-256 d4dbc9f52597c7f3c0538ddc0ded7efb6e629555745e6f8e362404b82ee8e398

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 941460db8fe3bd613db52f05259c9336f5a47ccae7d7def44cc277184030a116
MD5 1df2b92d40c926265400df603fd35fd5
BLAKE2b-256 da59fd0bf7be90fadd122f9d681ccbeedf1cb1076bbdbc9d8e30f1edc46ab166

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 423adfa872b4908843ac3e7a30f957f5d5282944b81ca0a3b8a7ccbbfaa06103
MD5 ee739a9ac4e970fc604c5e05f6eb25fa
BLAKE2b-256 19bbfbe0d6109866d0201b590de1ce16d839b8eb591d92c04421c5dc3df06639

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 aadf28046e77a72f30dcc1ab185639e8de7f4104b8cb5c6dfa5d8ed860e57236
MD5 957d7e2e8ba309f7aae21026412ef390
BLAKE2b-256 62a88447317f6e91c0d4d00ed0b8038232677d4dd5218cc7326411ba08c1f836

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.8.8-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 263.2 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 a8c65c17aed7e15a0c824cdc63a6b104dfc530f6fa8cb6ac51c437af52b481c7
MD5 6e640e472013e805c53ab9d1ed17a954
BLAKE2b-256 23be37cab10e6b408d7b8ec43e410b280a3cd51ba3061011a916ccc460357413

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e9941a4ada58f6218694f382e43fdd256e97615db9da135e77359da257a7168b
MD5 4432bacb0150c252680dc0dcb1dc9f8c
BLAKE2b-256 9ad5c3ce46f3234c99f530af5353d091c683536df2873683b04d50fc430b5934

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 b076da1ed19dc37788f6a934c60adf97bd02c7eea461b73730513921a85d4235
MD5 c6c77f4d0f81035b27594e80bf896246
BLAKE2b-256 fcfebee92852975c1b4a8d21a01b51dbc8db16bed6d9010b494a8278f280686e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 3d370ff652323c5307d9c8e4c62efd1956fb08051b0e9210212bc51168b4ff56
MD5 ad026e0da6b07bf478ff5639a89c2763
BLAKE2b-256 fc5bb9301fb64940d622b91369d2e7d3b761b60cc88965f66186098fb1505a73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d909b5a3fff619dc7e48b6b1bedc2f30ec43033ba7af32f936c10839e81b9217
MD5 925c763b0459215114916bb6959c5775
BLAKE2b-256 90ac21d539b6fab3e84f21853a511dead699fecc5d12992e8b550c8af79d1fbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 293352710172239bf579c90a9864d0df57340b6fd21272345222fb6371bf82b3
MD5 974444d512603fd4e106d975c47920f6
BLAKE2b-256 8fd0ad9c9550ddb32ab8ceb53702e70e7711ad6c91cb82ea2ffdb9ef2c9be117

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de35342190deb7b866ad6ba5cbcccb2d22c0487ee0cbb251efef0843d705f0d4
MD5 ca73a2b1601beacdea88710b92ba741d
BLAKE2b-256 1802d7ba6749c5b7a6f75d6cf287942c800f63e98440dd03e406ed5f01c2b9db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 91129ff1bb0619bc1f4ad19485718cc623a2dc433dff95baadbf89405c7f6b57
MD5 848529717b4f35c58dffb0d01e12565b
BLAKE2b-256 40d414ef6a4bff37a1a7aeaaacd6a8303cc2aa8e213f3de969788b121098f9ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 22283c769a7b01c8ac355d5be0715bf6929b6267619505e289f792b01304d898
MD5 b13ac7396abef4e07cf7f3b0c03adbfe
BLAKE2b-256 01d06a9ae95c82d0bb8478b8eca950ac12129b5f21084ba6d92232a92b063669

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 704f63b774218207b8ccc6c47fcef5340741e5d839d11d606f70af93ee78e4d4
MD5 2ac22b9ad0ebe355ee214303d3cc214d
BLAKE2b-256 1afe514b90cf2b7909b7a178439f1b9e980e996bb69ebae5728902409e68f182

See more details on using hashes here.

File details

Details for the file regex-2023.8.8-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.8.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3026cbcf11d79095a32d9a13bbc572a458727bd5b1ca332df4a79faecd45281c
MD5 865fc095c959bfe655b940e8c5adf2e9
BLAKE2b-256 fd75ed64d258199c5ea90be0b6f772a7e3d408e794f54236afa0f28e1db384d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b993b6f524d1e274a5062488a43e3f9f8764ee9745ccd8e8193df743dbe5ee61
MD5 340ad62a18bac265f39577c368d922f6
BLAKE2b-256 84ba8e434f5254c233e60379925b12d9b8e2babaa0443c9c84564c1901f185bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.8.8-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e951d1a8e9963ea51efd7f150450803e3b95db5939f994ad3d5edac2b6f6e2b4
MD5 c148ec78306c9474aed1f4f661833d23
BLAKE2b-256 1ecd6430e88dac499d92d3bfebec381d712e18c0daddb6ed6740e5f83e8edd10

See more details on using hashes here.

Supported by

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