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

Uploaded Source

Built Distributions

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

regex-2022.10.31-cp311-cp311-win_amd64.whl (267.7 kB view details)

Uploaded CPython 3.11Windows x86-64

regex-2022.10.31-cp311-cp311-win32.whl (255.8 kB view details)

Uploaded CPython 3.11Windows x86

regex-2022.10.31-cp311-cp311-musllinux_1_1_x86_64.whl (750.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

regex-2022.10.31-cp311-cp311-musllinux_1_1_s390x.whl (772.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ s390x

regex-2022.10.31-cp311-cp311-musllinux_1_1_ppc64le.whl (771.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ppc64le

regex-2022.10.31-cp311-cp311-musllinux_1_1_i686.whl (737.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

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

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

regex-2022.10.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (781.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

regex-2022.10.31-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (808.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

regex-2022.10.31-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (821.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

regex-2022.10.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (781.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

regex-2022.10.31-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (769.6 kB view details)

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

regex-2022.10.31-cp311-cp311-macosx_11_0_arm64.whl (287.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

regex-2022.10.31-cp311-cp311-macosx_10_9_x86_64.whl (294.0 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

regex-2022.10.31-cp310-cp310-win_amd64.whl (267.7 kB view details)

Uploaded CPython 3.10Windows x86-64

regex-2022.10.31-cp310-cp310-win32.whl (255.8 kB view details)

Uploaded CPython 3.10Windows x86

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

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

regex-2022.10.31-cp310-cp310-musllinux_1_1_s390x.whl (763.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ s390x

regex-2022.10.31-cp310-cp310-musllinux_1_1_ppc64le.whl (762.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ppc64le

regex-2022.10.31-cp310-cp310-musllinux_1_1_i686.whl (728.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

regex-2022.10.31-cp310-cp310-musllinux_1_1_aarch64.whl (740.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

regex-2022.10.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (770.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

regex-2022.10.31-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (795.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

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

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

regex-2022.10.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (769.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

regex-2022.10.31-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (685.2 kB view details)

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

regex-2022.10.31-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (757.9 kB view details)

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

regex-2022.10.31-cp310-cp310-macosx_11_0_arm64.whl (287.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

regex-2022.10.31-cp310-cp310-macosx_10_9_x86_64.whl (293.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

regex-2022.10.31-cp39-cp39-win_amd64.whl (267.8 kB view details)

Uploaded CPython 3.9Windows x86-64

regex-2022.10.31-cp39-cp39-win32.whl (255.8 kB view details)

Uploaded CPython 3.9Windows x86

regex-2022.10.31-cp39-cp39-musllinux_1_1_x86_64.whl (741.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

regex-2022.10.31-cp39-cp39-musllinux_1_1_s390x.whl (762.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ s390x

regex-2022.10.31-cp39-cp39-musllinux_1_1_ppc64le.whl (761.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ppc64le

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

Uploaded CPython 3.9musllinux: musl 1.1+ i686

regex-2022.10.31-cp39-cp39-musllinux_1_1_aarch64.whl (739.3 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (770.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

regex-2022.10.31-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (795.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

regex-2022.10.31-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (809.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

regex-2022.10.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (769.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

regex-2022.10.31-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (684.6 kB view details)

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

regex-2022.10.31-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (757.4 kB view details)

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

regex-2022.10.31-cp39-cp39-macosx_11_0_arm64.whl (287.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

regex-2022.10.31-cp39-cp39-macosx_10_9_x86_64.whl (293.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

regex-2022.10.31-cp38-cp38-win_amd64.whl (267.7 kB view details)

Uploaded CPython 3.8Windows x86-64

regex-2022.10.31-cp38-cp38-win32.whl (255.8 kB view details)

Uploaded CPython 3.8Windows x86

regex-2022.10.31-cp38-cp38-musllinux_1_1_x86_64.whl (747.1 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

regex-2022.10.31-cp38-cp38-musllinux_1_1_s390x.whl (767.8 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ s390x

regex-2022.10.31-cp38-cp38-musllinux_1_1_ppc64le.whl (766.9 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ppc64le

regex-2022.10.31-cp38-cp38-musllinux_1_1_i686.whl (732.6 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

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

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

regex-2022.10.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (772.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

regex-2022.10.31-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (796.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

regex-2022.10.31-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (811.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

regex-2022.10.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (771.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

regex-2022.10.31-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (690.6 kB view details)

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

regex-2022.10.31-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (760.4 kB view details)

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

regex-2022.10.31-cp38-cp38-macosx_11_0_arm64.whl (287.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

regex-2022.10.31-cp38-cp38-macosx_10_9_x86_64.whl (294.0 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

regex-2022.10.31-cp37-cp37m-win_amd64.whl (268.0 kB view details)

Uploaded CPython 3.7mWindows x86-64

regex-2022.10.31-cp37-cp37m-win32.whl (255.5 kB view details)

Uploaded CPython 3.7mWindows x86

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

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

regex-2022.10.31-cp37-cp37m-musllinux_1_1_s390x.whl (754.2 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ s390x

regex-2022.10.31-cp37-cp37m-musllinux_1_1_ppc64le.whl (752.8 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ppc64le

regex-2022.10.31-cp37-cp37m-musllinux_1_1_i686.whl (718.3 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ i686

regex-2022.10.31-cp37-cp37m-musllinux_1_1_aarch64.whl (728.6 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ARM64

regex-2022.10.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757.1 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

regex-2022.10.31-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (781.8 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ s390x

regex-2022.10.31-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (795.0 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ppc64le

regex-2022.10.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (752.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

regex-2022.10.31-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-2022.10.31-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (743.5 kB view details)

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

regex-2022.10.31-cp37-cp37m-macosx_10_9_x86_64.whl (294.4 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

regex-2022.10.31-cp36-cp36m-win_amd64.whl (279.5 kB view details)

Uploaded CPython 3.6mWindows x86-64

regex-2022.10.31-cp36-cp36m-win32.whl (262.5 kB view details)

Uploaded CPython 3.6mWindows x86

regex-2022.10.31-cp36-cp36m-musllinux_1_1_x86_64.whl (732.0 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ x86-64

regex-2022.10.31-cp36-cp36m-musllinux_1_1_s390x.whl (751.5 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ s390x

regex-2022.10.31-cp36-cp36m-musllinux_1_1_ppc64le.whl (751.2 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ ppc64le

regex-2022.10.31-cp36-cp36m-musllinux_1_1_i686.whl (718.2 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ i686

regex-2022.10.31-cp36-cp36m-musllinux_1_1_aarch64.whl (726.3 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ ARM64

regex-2022.10.31-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (756.4 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

regex-2022.10.31-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl (782.4 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ s390x

regex-2022.10.31-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (795.6 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ppc64le

regex-2022.10.31-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (754.3 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ARM64

regex-2022.10.31-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (676.7 kB view details)

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

regex-2022.10.31-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (744.2 kB view details)

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

regex-2022.10.31-cp36-cp36m-macosx_10_9_x86_64.whl (294.5 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31.tar.gz
Algorithm Hash digest
SHA256 a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83
MD5 a85ced10be8bfe76fed4f30c42d32d5c
BLAKE2b-256 27b592d404279fd5f4f0a17235211bb0f5ae7a0d9afb7f439086ec247441ed28

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61
MD5 bd33719469a989a03a657c3e8ad282cf
BLAKE2b-256 914efb78efdac24862ef6ea8009b0b9cdb5f25968d1b262cc32abd9d483f50b1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af
MD5 b8be0dfce663ce9f192c356813cb574c
BLAKE2b-256 0828f038ff3c5cfd30760bccefbe0b98d51cf61192ec8d3d55dd51564bf6c6b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7
MD5 e2bef0f738979ecd4f804c6eb2f9742f
BLAKE2b-256 07ba7021c60d02f7fe7c3e4ee9636d8a2d93bd894a5063c2b5f35e2e31b1f3ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c
MD5 6485862b518cf5052dacdb04d1b1da17
BLAKE2b-256 8750e237090e90a0b0c8eab40af7d6f2faaf1432c4dca232de9a9c789faf3154

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c
MD5 12a4c09f5b33ad44e25916d070871748
BLAKE2b-256 d2a62af9cc002057b75868ec7740fe3acb8f89796c9d29caf5775fefd96c3240

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5
MD5 1fec70d74dd28a5bbae6452fbf00c49d
BLAKE2b-256 189cb52170b2dc8d65a69f3369d0bd1a3102df295edfccfef1b41e82b6aef796

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f
MD5 42e1b2758def401e20df1a1952359084
BLAKE2b-256 04dee8ed731b334e5f962ef035a32f151fffb2f839eccfba40c3ebdac9b26e03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1
MD5 03fac146f116ce46096d22946a0cd89e
BLAKE2b-256 3ecf97a89e2b798988118beed6620dbfbc9b4bd72d8177b3b4ed47d80da26df9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c
MD5 40b952666b2c6fd08d95a4be3d85434e
BLAKE2b-256 83addefd48762ff8fb2d06667b1e8bef471c2cc71a1b3d6ead26b841bfd9da99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e
MD5 eef1a6c817fad886bdf3a1dc979527b0
BLAKE2b-256 5573f71734c0357e41673b00bff0a8675ffb67328ba18f24614ec5af2073b56f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7
MD5 6b13ef8a2b1d6598fbfa077bd68a1f19
BLAKE2b-256 c1653ee862c7a78ce1f9bd748d460e379317464c2658e645a1a7c1304d36e819

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4
MD5 2eb032adc15ed95e3931fb4ef781e59c
BLAKE2b-256 fd12c5d64d860c2d1be211a91b2416097d5e40699b80296cb4e99a064d4b4ff2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542
MD5 b6a7db59fc5f5e436b699ccec1b199df
BLAKE2b-256 fa54acb97b65bc556520d61262ff22ad7d4baff96e3219fa1dc5425269def873

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe
MD5 76447e06883392ef6b8e4d8693808787
BLAKE2b-256 1a1ae7ae9a041d3e103f98c9a79d8abb235cca738b7bd6da3fb5e4066d30e4d7

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5
MD5 93dc7f5f9f6fcd0d24dbdae46a466c7b
BLAKE2b-256 b70ac865345e6ece671f16ac1fe79bf4ba771c528c2e4a56607898cdf065c285

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1
MD5 f980e8826715f8be73fb84e6a0ff4fdc
BLAKE2b-256 2ddb45ca83007d69cc594c32d7feae20b1b6067f829b2b0d27bb769d7188dfa1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66
MD5 1f50ae91c811cc8dfe5562c022e0ec68
BLAKE2b-256 007eab5a54f60e36f4de0610850866b848839a7b02ad4f05755bce429fbc1a5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc
MD5 049e2a5420f53e4368e6e3ec6df61463
BLAKE2b-256 238d1df5d30ce1e5ae3edfb775b892c93882d13ba93991314871fec569f16829

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af
MD5 5eeab3d0b1c8afbb2d95de4b0152c638
BLAKE2b-256 08cb0445a970e755eb806945a166729210861391f645223187aa11fcbbb606ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66
MD5 1e737caf48adbccf4c4d3f58af1673b0
BLAKE2b-256 3cd149b9a2cb289c20888b23bb7f8f29e3ad7982785b10041477fd56ed5783c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc
MD5 29a4e784f59a97356244e59f8e1346eb
BLAKE2b-256 ccc26d41a7a9690d4543b1f438f45576af96523c4f1caeb5307fff3350ec7d0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001
MD5 b77646d732dc4497034c4ef498185151
BLAKE2b-256 bed37e334b8bc597dea6200f7bb969fc693d4c71c4a395750e28d09c8e5a8104

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4
MD5 777adcf74db58429f2da3307b8e03f1e
BLAKE2b-256 481e829551abceba73e7e9b1f94a311a53e9c0f60c7deec8821633fc3b343a58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57
MD5 7848751db888cfc579eeb0725e78acfd
BLAKE2b-256 bbba92096d78cbdd34dce674962392a0e57ce748a9e5f737f12b0001723d959a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b
MD5 4097a03bcccb94605122bc66fe11a0d9
BLAKE2b-256 30eba28fad5b882d3e711c75414b3c99fb2954f78fa450deeed9fe9ad3bf2534

See more details on using hashes here.

File details

Details for the file regex-2022.10.31-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-2022.10.31-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144
MD5 22e71a7494c213f177d49d46fbee4a09
BLAKE2b-256 7ccf50844f62052bb858987fe3970315134e3be6167fc76e11d328e7fcf876ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90
MD5 fe4acc4ab0c7d5e09a6d45f96456951a
BLAKE2b-256 f8ca105a8f6d70499f2687a857570dcd411c0621a347b06c27126cffc32e77e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9
MD5 ea5db40bafda1129120cc4e021c92c2c
BLAKE2b-256 8d507dd264adf08bf3ca588562bac344a825174e8e57c75ad3e5ed169aba5718

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f
MD5 c8896b602d281335cac858f9acd2f5eb
BLAKE2b-256 849367595e62890fa944da394795f0425140917340d35d9cfd49672a8dc48c1a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692
MD5 77cec3c7227063fb9d40bbe49d9ba28f
BLAKE2b-256 923c17432c77b7d3929adb73077584606b236be4ed832243d426f51f5a0f72f9

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1
MD5 5759bc2d23485e9c7645d166b53d2563
BLAKE2b-256 ceac519de46093b4162e154f055ec020ba2f3641ba2cf6f1ddefd1abea5043b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892
MD5 4abcf10114c104eb9b4ba21a9d595993
BLAKE2b-256 484e4c1e7dfab3255f4476faa11a9fcc867e03d2c4abb2e101505deb7ef790e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8
MD5 a802c1b79466046e9a9cac86ea3907ec
BLAKE2b-256 cc451ecb7ee4f479da2bc23e16a0266a90a5ecd918e1410d9188a1ae457f7c3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8
MD5 842158c60f699ec5298d5ccf481a50ee
BLAKE2b-256 ec266577862030d42967657f1132956c4600a95bb7e999741bfa32cc0c5441ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1
MD5 e47c8f2b276328ac7594c1d2120b1fd6
BLAKE2b-256 b3a21c165d7759f501184214e788dccfc0bbca068eb70d6bc4fd7999712a2674

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5
MD5 315bec1a494e028a2f290226dadcba8f
BLAKE2b-256 4efaefe2c65d2555a01c61a6522b63f98dd7f77dbfeea810e96d8f7e1d9552a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185
MD5 ac735df12a07f91aa321db53e029b5f6
BLAKE2b-256 de821e868572aaa6b5468f07512fd184650bf9ade15943d4f1ae83d0dc512872

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690
MD5 2d2e3b5be1070d48e53bd2c9e7f9567b
BLAKE2b-256 ad56c6344d2f3e170229fbd9e7928f85969084905e52ea06446f4d1763c712ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244
MD5 7b7cbeb34d14cd5dfa5e5067abc60e89
BLAKE2b-256 59685d77731c6cb3cfcf8aece4c650cc4a601795387292e2bd61826ed75310eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc
MD5 defe2cb46b60a8a52ac9cde906289e33
BLAKE2b-256 584e0f0a7b674d6164809db80eac36a3a70bbd3bcf6dc8fb6f89f70f0893b85b

See more details on using hashes here.

File details

Details for the file regex-2022.10.31-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-2022.10.31-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4
MD5 dc7155fa2d5ceff81e1bb6039253fe6f
BLAKE2b-256 289ce392e9aac4d4c10d81e0991e31e50755bd5f15a924284de4fac1d728b145

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7
MD5 6248f5baae733c7b10fa5cfe804cb847
BLAKE2b-256 69a4d8cb52db0a918f8a1cad766c4bc5cf968b2a00a06183aa9b5f71ff6094e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b
MD5 635e1ae37a63172bec5890f1f4111243
BLAKE2b-256 5f7e23ddf7d405aad0d0a8fa478ba60fc1c46f661403fe4a49e04d48ea1095b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49
MD5 92b8e005205468f7a2e447ac6a41b5ed
BLAKE2b-256 c76a386254696e2ab59ccce2eeee1e014f95538004e3c840606ef817192dbf8a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453
MD5 2d2b9639f30b73793ca9694b02d31b8f
BLAKE2b-256 1ff3895ba11bc0243becd38f8b7560d2e329c465ead247cfb815611c347d7fc1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc
MD5 923648a700e837bda0e92bf43afcd158
BLAKE2b-256 63897035055b960428a3af1fb1bfdf805cada83a81f88459350dad82a260a08d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c
MD5 d33f6a033556c98bd0b720ae1b4b5935
BLAKE2b-256 09d370714b99c25bac40f81eaf3fe06eb016c5b9b9ac88815145dc6aa7d06b68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d
MD5 13ad3438395de9218a11d7dff99d5b90
BLAKE2b-256 08e294af654d5fdfdad3a05991e104df66c42945650d31713fe290cd446178f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73
MD5 85e47efb1e0b19943703777c4c4ea63a
BLAKE2b-256 d85c40e197174793b44637dd542c1dee45a5517023d1cac5ca5a68fbe60e4105

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a
MD5 452e4e6b1d2ce3413e52822f7438b28c
BLAKE2b-256 08ef96ef949ee331d39489799b44f2d5aa8a252a2d7aa4a96edbb05425d344f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff
MD5 20d0fcfccc7736da0b1a2180e8656293
BLAKE2b-256 72cfda36a722626572ea66ab799e7019eb9a367fa563d43e3b1ec65a934d12d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e
MD5 df96a6beb781a63dbe831c94b914c4ea
BLAKE2b-256 211ff54c156ac95a89d33113d78a18c03db8c00600392d6d6c5a18249c563c58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714
MD5 f8f6f7c4faee0de2dfe9fada2f4932e7
BLAKE2b-256 564b22c965c2f6847b0581a8d4407b265c04f989cb6df09ddfd7205744b14cbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee
MD5 78dbb46f5e95e08c1ab9b8b512f26c09
BLAKE2b-256 b404daeb6806a2b2e10e548c95b136aefb12818ef81a0aa5f865705bf19e7cd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad
MD5 0883a8c517a4fc2f7b709c03a66ddd4f
BLAKE2b-256 dd0867feb849ab7288465b7b577cf076c0db5244dfd64bec8740cd8f0e074897

See more details on using hashes here.

File details

Details for the file regex-2022.10.31-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-2022.10.31-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318
MD5 5335ff5c702d08c4d1f4adaa7d342cc1
BLAKE2b-256 9c1a63bcd0f28f74619190c4f6f3cf90e3fdccb4b1437aac7e19598e18b51901

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6
MD5 8e604bbd726843bd8736c8cbbbb96ab4
BLAKE2b-256 b36038ea6f8808bf58852b3e08faa2d7418b8887144f891284bc2a1afb7b6967

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8
MD5 fd8233b6de757969818fd91e1a8342e8
BLAKE2b-256 7874c8659c8e1b6745299df62099d162002deeb32a9a933bc7632836a3c22374

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d
MD5 f94c96218b7c225654a31c6d7fb080a4
BLAKE2b-256 ad294efb589803fa476e649fcc256886837b74931c4ca1878e69cd5018f77e03

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0
MD5 755ec4ff29c6149431e31803b932ce25
BLAKE2b-256 01b3a01602507224e611caa3c0f2a4aa96f4c03fdce482fa4527de61678a3018

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394
MD5 3805ae1786a38afe11c12ef4efe36c7d
BLAKE2b-256 c252b71ff1a281f37016cab322e176e3c63fe1b5c27d68cdacdec769708e49b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95
MD5 31224facd3ac8ded37e30951e56d2c10
BLAKE2b-256 009225b0b709d591ecd27e1bfb48c64d813a4ed4be0feb0321ea0b55db012099

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5
MD5 ea705c0b52ed29f02ca562ce620bb196
BLAKE2b-256 a69bb6819a467182e94e7648120cedcb6019751ceff9f5f3ef9c340e14ea7992

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8
MD5 2fdd3f4d988859aface3dd748a3b2cfc
BLAKE2b-256 101395d658ca010507b5a179d7fe8376d37d20c22f9be5abdd301832618463a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1
MD5 f30e683884503a1275b6cec855993199
BLAKE2b-256 a3606084d08f56d424f46ecbfedebd11b2c2d7eb2f9bc36ccd8801821024262c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9
MD5 8b7da83cef448a4e85979b9d0d096e93
BLAKE2b-256 435b6ba9b08ea991993ad61e4098d88069c86f6d6cc0e52a26fa35f6a66d90ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6
MD5 3af6959c18cb1be02a947102acf0974a
BLAKE2b-256 42d88a7131e7d0bf237f7bcd3191541a4bf21863c253fe6bee0796900a1a9a29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93
MD5 1d97ba35a7881fcaa80fa56604b20745
BLAKE2b-256 e57d0b0d25b7bb9a38cdccffd3fdcbf4ad7dd124fdf6ca6067cd973edff804bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347
MD5 7106b2a8de0381e80ad246b883e40d17
BLAKE2b-256 3c4f33b5cbd85fb0272e5c1dc00e3cfc89874b37705613455d7ab1c1f3ff7906

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783
MD5 99c94ba44ad38cc558b04a19e063b104
BLAKE2b-256 56e3351029c41f42e29d9c6ae3d217ad332761945b41dfbddb64adc31d434c6b

See more details on using hashes here.

File details

Details for the file regex-2022.10.31-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-2022.10.31-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec
MD5 1a8a4929696f49dd47b430093bcacdd7
BLAKE2b-256 fef220be658beb9ebef677550be562eae86c5433119b4b2fdb67035e9a841b0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11
MD5 e6f73916a2f7c9dfcaa119c9eac66aad
BLAKE2b-256 0acd4dfdfddca4478ad0ebb6053b2c2923eef1a8660ceb9f495e7a6abb62da15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8
MD5 e97f7fb3546091cc1615ad6e23d0570a
BLAKE2b-256 e64a48779981af80558ac01f0f2c0d71c1214215bc74c9b824eb6581e94a847c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6
MD5 c754839cf2861f248e2fd4d1fc1eee80
BLAKE2b-256 88e0d4251593cde041f3a9b249744da5b6e53d1ac4fa2542dfe251fe8070793b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066
MD5 6c01dece948757efc51044f5fb035d9b
BLAKE2b-256 fcbee2ffc7e7454a6db7650050db188af4575a5e4fc0ce6dc73a5d31c6796c34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4
MD5 b86a395530aca1d5cfc7ae654e8635c3
BLAKE2b-256 0bcc4f2cacc95e20cdef6421072b896bfea9cb9c54a78c4ea1253eb25a699782

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e
MD5 86071abaade6439ddff421b1eeeb4e34
BLAKE2b-256 dd822fcd88776b621ce6569ca51aa4bd33e55d49d0f594a0252bc1d97899c2d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa
MD5 ee611f8edc0f041a689084b666b204ec
BLAKE2b-256 54b2eb79f7674559f2dbb5bbba5ce5ca3e8539200c96e576ca9e0e619c2690d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e
MD5 76b2a87a6117282e209dd30c221c63ca
BLAKE2b-256 1dd9a70219b39be741af8a831b98dee154091115bc0e3770e28e006d86511619

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742
MD5 3001b9c037215392a930b8f8f70265d9
BLAKE2b-256 6538a5e1f46f32c453ec162eddac315d5e0d3a0f26ccd638c6f9d078e802d2aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54
MD5 ecf316b20000bf3d362a9b9bc993aa33
BLAKE2b-256 101c9b6827dd3be88b39d0ecce25abb27ad2a8104b1816da262c3ffd38311ea3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c
MD5 ee0fb402e3c5dad48de32cf3a947a6e5
BLAKE2b-256 c17e18651b654689c7e318e3e09c7f5ed56a48d7648c882ebe69ce8954d3941a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81
MD5 a167ff178abcf734853f0c4b21055564
BLAKE2b-256 b53d6ac9300e7b55979ad4040a4317cd14daf7689be0c09f2c49ca3070e2387a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b
MD5 4664218fd1f747fbf1bac39c80efcda9
BLAKE2b-256 2f381947b056840f27eb6f9cbb28ca70135f75fee117fe4fa546528a8962d275

See more details on using hashes here.

File details

Details for the file regex-2022.10.31-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-2022.10.31-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443
MD5 bd534ec59c196a96b06352ff5c117194
BLAKE2b-256 48eaa404ca530fd783d0b427e07451fdf847303ff3eccf851bdcb787872ab2d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5
MD5 f795cd9e3b3f469aa1efd927279daef5
BLAKE2b-256 4054c6f42a3bb78172493eaab818f62ac2062ab310ead0ae7ecd7f0de5ca9084

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2022.10.31-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd
MD5 5c25872996cf9e031eaf159fb35bf5fd
BLAKE2b-256 55c67235609772ee24e7f74342f7d0f7c40f043098421cc9fe9358fa98a66c79

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