Skip to main content

Alternative regular expression module, to replace re.

Project description

Introduction

This regex implementation is backwards-compatible with the standard ‘re’ module, but offers additional functionality.

Note

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

Python 2

Python 2 is no longer supported. The last release that supported Python 2 was 2021.11.10.

PyPy

This module is targeted at CPython. It expects that all codepoints are the same width, so it won’t behave properly with PyPy outside U+0000..U+007F because PyPy stores strings as UTF-8.

Multithreading

The regex module releases the GIL during matching on instances of the built-in (immutable) string classes, enabling other Python threads to run concurrently. It is also possible to force the regex module to release the GIL during matching by calling the matching methods with the keyword argument concurrent=True. The behaviour is undefined if the string changes during matching, so use it only when it is guaranteed that that won’t happen.

Unicode

This module supports Unicode 15.1.0. Full Unicode case-folding is supported.

Flags

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

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

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

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

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

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

Old vs new behaviour

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

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

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

    • Indicated by the VERSION0 flag.

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

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

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

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

    • Only simple sets are supported.

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

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

    • Indicated by the VERSION1 flag.

    • Zero-width matches are handled correctly.

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

    • Nested sets and set operations are supported.

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

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

Case-insensitive matches in Unicode

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

Version 0 behaviour: the flag is off by default.

Version 1 behaviour: the flag is on by default.

Nested sets and set operations

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

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

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

  • Literal “–”

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

  • Literal “]”

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

  • Set which is:

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

  • but excluding:

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

Version 0 behaviour: only simple sets are supported.

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

Notes on named groups

All groups have a group number, starting from 1.

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

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

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

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

  • (\s+) is group 1.

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

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

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

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

Additional features

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

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

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

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

The test of a conditional pattern can be a lookaround.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Added \K (Hg issue 151)

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

It does not affect what groups return.

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

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

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

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

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

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

Fixed the handling of locale-sensitive regexes

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

Added partial matches (Hg issue 102)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Python 3.6 and earlier
>>> regex.sub('(?V0).*', 'x', 'test')
'x'
>>> regex.sub('(?V1).*', 'x', 'test')
'xx'
>>> regex.sub('(?V0).*?', '|', 'test')
'|t|e|s|t|'
>>> regex.sub('(?V1).*?', '|', 'test')
'|||||||||'

Added capturesdict (Hg issue 86)

capturesdict is a combination of groupdict and captures:

groupdict returns a dict of the named groups and the last capture of those groups.

captures returns a list of all the captures of a group

capturesdict returns a dict of the named groups and lists of all the captures of those groups.

>>> m = regex.match(r"(?:(?P<word>\w+) (?P<digits>\d+)\n)+", "one 1\ntwo 2\nthree 3\n")
>>> m.groupdict()
{'word': 'three', 'digits': '3'}
>>> m.captures("word")
['one', 'two', 'three']
>>> m.captures("digits")
['1', '2', '3']
>>> m.capturesdict()
{'word': ['one', 'two', 'three'], 'digits': ['1', '2', '3']}

Added allcaptures and allspans (Git issue 474)

allcaptures returns a list of all the captures of all the groups.

allspans returns a list of all the spans of the all captures of all the groups.

>>> m = regex.match(r"(?:(?P<word>\w+) (?P<digits>\d+)\n)+", "one 1\ntwo 2\nthree 3\n")
>>> m.allcaptures()
(['one 1\ntwo 2\nthree 3\n'], ['one', 'two', 'three'], ['1', '2', '3'])
>>> m.allspans()
([(0, 20)], [(0, 3), (6, 9), (12, 17)], [(4, 5), (10, 11), (18, 19)])

Allow duplicate names of groups (Hg issue 87)

Group names can be duplicated.

>>> # With optional groups:
>>>
>>> # Both groups capture, the second capture 'overwriting' the first.
>>> m = regex.match(r"(?P<item>\w+)? or (?P<item>\w+)?", "first or second")
>>> m.group("item")
'second'
>>> m.captures("item")
['first', 'second']
>>> # Only the second group captures.
>>> m = regex.match(r"(?P<item>\w+)? or (?P<item>\w+)?", " or second")
>>> m.group("item")
'second'
>>> m.captures("item")
['second']
>>> # Only the first group captures.
>>> m = regex.match(r"(?P<item>\w+)? or (?P<item>\w+)?", "first or ")
>>> m.group("item")
'first'
>>> m.captures("item")
['first']
>>>
>>> # With mandatory groups:
>>>
>>> # Both groups capture, the second capture 'overwriting' the first.
>>> m = regex.match(r"(?P<item>\w*) or (?P<item>\w*)?", "first or second")
>>> m.group("item")
'second'
>>> m.captures("item")
['first', 'second']
>>> # Again, both groups capture, the second capture 'overwriting' the first.
>>> m = regex.match(r"(?P<item>\w*) or (?P<item>\w*)", " or second")
>>> m.group("item")
'second'
>>> m.captures("item")
['', 'second']
>>> # And yet again, both groups capture, the second capture 'overwriting' the first.
>>> m = regex.match(r"(?P<item>\w*) or (?P<item>\w*)", "first or ")
>>> m.group("item")
''
>>> m.captures("item")
['first', '']

Added fullmatch (issue #16203)

fullmatch behaves like match, except that it must match all of the string.

>>> print(regex.fullmatch(r"abc", "abc").span())
(0, 3)
>>> print(regex.fullmatch(r"abc", "abcx"))
None
>>> print(regex.fullmatch(r"abc", "abcx", endpos=3).span())
(0, 3)
>>> print(regex.fullmatch(r"abc", "xabcy", pos=1, endpos=4).span())
(1, 4)
>>>
>>> regex.match(r"a.*?", "abcd").group(0)
'a'
>>> regex.fullmatch(r"a.*?", "abcd").group(0)
'abcd'

Added subf and subfn

subf and subfn are alternatives to sub and subn respectively. When passed a replacement string, they treat it as a format string.

>>> regex.subf(r"(\w+) (\w+)", "{0} => {2} {1}", "foo bar")
'foo bar => bar foo'
>>> regex.subf(r"(?P<word1>\w+) (?P<word2>\w+)", "{word2} {word1}", "foo bar")
'bar foo'

Added expandf to match object

expandf is an alternative to expand. When passed a replacement string, it treats it as a format string.

>>> m = regex.match(r"(\w+) (\w+)", "foo bar")
>>> m.expandf("{0} => {2} {1}")
'foo bar => bar foo'
>>>
>>> m = regex.match(r"(?P<word1>\w+) (?P<word2>\w+)", "foo bar")
>>> m.expandf("{word2} {word1}")
'bar foo'

Detach searched string

A match object contains a reference to the string that was searched, via its string attribute. The detach_string method will ‘detach’ that string, making it available for garbage collection, which might save valuable memory if that string is very large.

>>> m = regex.search(r"\w+", "Hello world")
>>> print(m.group())
Hello
>>> print(m.string)
Hello world
>>> m.detach_string()
>>> print(m.group())
Hello
>>> print(m.string)
None

Recursive patterns (Hg issue 27)

Recursive and repeated patterns are supported.

(?R) or (?0) tries to match the entire regex recursively. (?1), (?2), etc, try to match the relevant group.

(?&name) tries to match the named group.

>>> regex.match(r"(Tarzan|Jane) loves (?1)", "Tarzan loves Jane").groups()
('Tarzan',)
>>> regex.match(r"(Tarzan|Jane) loves (?1)", "Jane loves Tarzan").groups()
('Jane',)

>>> m = regex.search(r"(\w)(?:(?R)|(\w?))\1", "kayak")
>>> m.group(0, 1, 2)
('kayak', 'k', None)

The first two examples show how the subpattern within the group is reused, but is _not_ itself a group. In other words, "(Tarzan|Jane) loves (?1)" is equivalent to "(Tarzan|Jane) loves (?:Tarzan|Jane)".

It’s possible to backtrack into a recursed or repeated group.

You can’t call a group if there is more than one group with that group name or group number ("ambiguous group reference").

The alternative forms (?P>name) and (?P&name) are also supported.

Full Unicode case-folding is supported

In version 1 behaviour, the regex module uses full case-folding when performing case-insensitive matches in Unicode.

>>> regex.match(r"(?iV1)strasse", "stra\N{LATIN SMALL LETTER SHARP S}e").span()
(0, 6)
>>> regex.match(r"(?iV1)stra\N{LATIN SMALL LETTER SHARP S}e", "STRASSE").span()
(0, 7)

In version 0 behaviour, it uses simple case-folding for backward compatibility with the re module.

Approximate “fuzzy” matching (Hg issue 12, Hg issue 41, Hg issue 109)

Regex usually attempts an exact match, but sometimes an approximate, or “fuzzy”, match is needed, for those cases where the text being searched may contain errors in the form of inserted, deleted or substituted characters.

A fuzzy regex specifies which types of errors are permitted, and, optionally, either the minimum and maximum or only the maximum permitted number of each type. (You cannot specify only a minimum.)

The 3 types of error are:

  • Insertion, indicated by “i”

  • Deletion, indicated by “d”

  • Substitution, indicated by “s”

In addition, “e” indicates any type of error.

The fuzziness of a regex item is specified between “{” and “}” after the item.

Examples:

  • foo match “foo” exactly

  • (?:foo){i} match “foo”, permitting insertions

  • (?:foo){d} match “foo”, permitting deletions

  • (?:foo){s} match “foo”, permitting substitutions

  • (?:foo){i,s} match “foo”, permitting insertions and substitutions

  • (?:foo){e} match “foo”, permitting errors

If a certain type of error is specified, then any type not specified will not be permitted.

In the following examples I’ll omit the item and write only the fuzziness:

  • {d<=3} permit at most 3 deletions, but no other types

  • {i<=1,s<=2} permit at most 1 insertion and at most 2 substitutions, but no deletions

  • {1<=e<=3} permit at least 1 and at most 3 errors

  • {i<=2,d<=2,e<=3} permit at most 2 insertions, at most 2 deletions, at most 3 errors in total, but no substitutions

It’s also possible to state the costs of each type of error and the maximum permitted total cost.

Examples:

  • {2i+2d+1s<=4} each insertion costs 2, each deletion costs 2, each substitution costs 1, the total cost must not exceed 4

  • {i<=1,d<=1,s<=1,2i+2d+1s<=4} at most 1 insertion, at most 1 deletion, at most 1 substitution; each insertion costs 2, each deletion costs 2, each substitution costs 1, the total cost must not exceed 4

You can also use “<” instead of “<=” if you want an exclusive minimum or maximum.

You can add a test to perform on a character that’s substituted or inserted.

Examples:

  • {s<=2:[a-z]} at most 2 substitutions, which must be in the character set [a-z].

  • {s<=2,i<=3:\d} at most 2 substitutions, at most 3 insertions, which must be digits.

By default, fuzzy matching searches for the first match that meets the given constraints. The ENHANCEMATCH flag will cause it to attempt to improve the fit (i.e. reduce the number of errors) of the match that it has found.

The BESTMATCH flag will make it search for the best match instead.

Further examples to note:

  • regex.search("(dog){e}", "cat and dog")[1] returns "cat" because that matches "dog" with 3 errors (an unlimited number of errors is permitted).

  • regex.search("(dog){e<=1}", "cat and dog")[1] returns " dog" (with a leading space) because that matches "dog" with 1 error, which is within the limit.

  • regex.search("(?e)(dog){e<=1}", "cat and dog")[1] returns "dog" (without a leading space) because the fuzzy search matches " dog" with 1 error, which is within the limit, and the (?e) then it attempts a better fit.

In the first two examples there are perfect matches later in the string, but in neither case is it the first possible match.

The match object has an attribute fuzzy_counts which gives the total number of substitutions, insertions and deletions.

>>> # A 'raw' fuzzy match:
>>> regex.fullmatch(r"(?:cats|cat){e<=1}", "cat").fuzzy_counts
(0, 0, 1)
>>> # 0 substitutions, 0 insertions, 1 deletion.

>>> # A better match might be possible if the ENHANCEMATCH flag used:
>>> regex.fullmatch(r"(?e)(?:cats|cat){e<=1}", "cat").fuzzy_counts
(0, 0, 0)
>>> # 0 substitutions, 0 insertions, 0 deletions.

The match object also has an attribute fuzzy_changes which gives a tuple of the positions of the substitutions, insertions and deletions.

>>> m = regex.search('(fuu){i<=2,d<=2,e<=5}', 'anaconda foo bar')
>>> m
<regex.Match object; span=(7, 10), match='a f', fuzzy_counts=(0, 2, 2)>
>>> m.fuzzy_changes
([], [7, 8], [10, 11])

What this means is that if the matched part of the string had been:

'anacondfuuoo bar'

it would’ve been an exact match.

However, there were insertions at positions 7 and 8:

'anaconda fuuoo bar'
        ^^

and deletions at positions 10 and 11:

'anaconda f~~oo bar'
           ^^

So the actual string was:

'anaconda foo bar'

Named lists \L<name> (Hg issue 11)

There are occasions where you may want to include a list (actually, a set) of options in a regex.

One way is to build the pattern like this:

>>> p = regex.compile(r"first|second|third|fourth|fifth")

but if the list is large, parsing the resulting regex can take considerable time, and care must also be taken that the strings are properly escaped and properly ordered, for example, “cats” before “cat”.

The new alternative is to use a named list:

>>> option_set = ["first", "second", "third", "fourth", "fifth"]
>>> p = regex.compile(r"\L<options>", options=option_set)

The order of the items is irrelevant, they are treated as a set. The named lists are available as the .named_lists attribute of the pattern object :

>>> print(p.named_lists)
{'options': frozenset({'third', 'first', 'fifth', 'fourth', 'second'})}

If there are any unused keyword arguments, ValueError will be raised unless you tell it otherwise:

>>> option_set = ["first", "second", "third", "fourth", "fifth"]
>>> p = regex.compile(r"\L<options>", options=option_set, other_options=[])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python310\lib\site-packages\regex\regex.py", line 353, in compile
    return _compile(pattern, flags, ignore_unused, kwargs, cache_pattern)
  File "C:\Python310\lib\site-packages\regex\regex.py", line 500, in _compile
    complain_unused_args()
  File "C:\Python310\lib\site-packages\regex\regex.py", line 483, in complain_unused_args
    raise ValueError('unused keyword argument {!a}'.format(any_one))
ValueError: unused keyword argument 'other_options'
>>> p = regex.compile(r"\L<options>", options=option_set, other_options=[], ignore_unused=True)
>>> p = regex.compile(r"\L<options>", options=option_set, other_options=[], ignore_unused=False)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python310\lib\site-packages\regex\regex.py", line 353, in compile
    return _compile(pattern, flags, ignore_unused, kwargs, cache_pattern)
  File "C:\Python310\lib\site-packages\regex\regex.py", line 500, in _compile
    complain_unused_args()
  File "C:\Python310\lib\site-packages\regex\regex.py", line 483, in complain_unused_args
    raise ValueError('unused keyword argument {!a}'.format(any_one))
ValueError: unused keyword argument 'other_options'
>>>

Start and end of word

\m matches at the start of a word.

\M matches at the end of a word.

Compare with \b, which matches at the start or end of a word.

Unicode line separators

Normally the only line separator is \n (\x0A), but if the WORD flag is turned on then the line separators are \x0D\x0A, \x0A, \x0B, \x0C and \x0D, plus \x85, \u2028 and \u2029 when working with Unicode.

This affects the regex dot ".", which, with the DOTALL flag turned off, matches any character except a line separator. It also affects the line anchors ^ and $ (in multiline mode).

Set operators

Version 1 behaviour only

Set operators have been added, and a set [...] can include nested sets.

The operators, in order of increasing precedence, are:

  • || for union (“x||y” means “x or y”)

  • ~~ (double tilde) for symmetric difference (“x~~y” means “x or y, but not both”)

  • && for intersection (“x&&y” means “x and y”)

  • -- (double dash) for difference (“x–y” means “x but not y”)

Implicit union, ie, simple juxtaposition like in [ab], has the highest precedence. Thus, [ab&&cd] is the same as [[a||b]&&[c||d]].

Examples:

  • [ab] # Set containing ‘a’ and ‘b’

  • [a-z] # Set containing ‘a’ .. ‘z’

  • [[a-z]--[qw]] # Set containing ‘a’ .. ‘z’, but not ‘q’ or ‘w’

  • [a-z--qw] # Same as above

  • [\p{L}--QW] # Set containing all letters except ‘Q’ and ‘W’

  • [\p{N}--[0-9]] # Set containing all numbers except ‘0’ .. ‘9’

  • [\p{ASCII}&&\p{Letter}] # Set containing all characters which are ASCII and letter

regex.escape (issue #2650)

regex.escape has an additional keyword parameter special_only. When True, only ‘special’ regex characters, such as ‘?’, are escaped.

>>> regex.escape("foo!?", special_only=False)
'foo\\!\\?'
>>> regex.escape("foo!?", special_only=True)
'foo!\\?'

regex.escape (Hg issue 249)

regex.escape has an additional keyword parameter literal_spaces. When True, spaces are not escaped.

>>> regex.escape("foo bar!?", literal_spaces=False)
'foo\\ bar!\\?'
>>> regex.escape("foo bar!?", literal_spaces=True)
'foo bar!\\?'

Repeated captures (issue #7132)

A match object has additional methods which return information on all the successful matches of a repeated group. These methods are:

  • matchobject.captures([group1, ...])

    • Returns a list of the strings matched in a group or groups. Compare with matchobject.group([group1, ...]).

  • matchobject.starts([group])

    • Returns a list of the start positions. Compare with matchobject.start([group]).

  • matchobject.ends([group])

    • Returns a list of the end positions. Compare with matchobject.end([group]).

  • matchobject.spans([group])

    • Returns a list of the spans. Compare with matchobject.span([group]).

>>> m = regex.search(r"(\w{3})+", "123456789")
>>> m.group(1)
'789'
>>> m.captures(1)
['123', '456', '789']
>>> m.start(1)
6
>>> m.starts(1)
[0, 3, 6]
>>> m.end(1)
9
>>> m.ends(1)
[3, 6, 9]
>>> m.span(1)
(6, 9)
>>> m.spans(1)
[(0, 3), (3, 6), (6, 9)]

Atomic grouping (?>...) (issue #433030)

If the following pattern subsequently fails, then the subpattern as a whole will fail.

Possessive quantifiers

(?:...)?+ ; (?:...)*+ ; (?:...)++ ; (?:...){min,max}+

The subpattern is matched up to ‘max’ times. If the following pattern subsequently fails, then all the repeated subpatterns will fail as a whole. For example, (?:...)++ is equivalent to (?>(?:...)+).

Scoped flags (issue #433028)

(?flags-flags:...)

The flags will apply only to the subpattern. Flags can be turned on or off.

Definition of ‘word’ character (issue #1693050)

The definition of a ‘word’ character has been expanded for Unicode. It conforms to the Unicode specification at http://www.unicode.org/reports/tr29/.

Variable-length lookbehind

A lookbehind can match a variable-length string.

Flags argument for regex.split, regex.sub and regex.subn (issue #3482)

regex.split, regex.sub and regex.subn support a ‘flags’ argument.

Pos and endpos arguments for regex.sub and regex.subn

regex.sub and regex.subn support ‘pos’ and ‘endpos’ arguments.

‘Overlapped’ argument for regex.findall and regex.finditer

regex.findall and regex.finditer support an ‘overlapped’ flag which permits overlapped matches.

Splititer

regex.splititer has been added. It’s a generator equivalent of regex.split.

Subscripting match objects for groups

A match object accepts access to the groups via subscripting and slicing:

>>> m = regex.search(r"(?P<before>.*?)(?P<num>\d+)(?P<after>.*)", "pqr123stu")
>>> print(m["before"])
pqr
>>> print(len(m))
4
>>> print(m[:])
('pqr123stu', 'pqr', '123', 'stu')

Named groups

Groups can be named with (?<name>...) as well as the existing (?P<name>...).

Group references

Groups can be referenced within a pattern with \g<name>. This also allows there to be more than 99 groups.

Named characters \N{name}

Named characters are supported. Note that only those known by Python’s Unicode database will be recognised.

Unicode codepoint properties, including scripts and blocks

\p{property=value}; \P{property=value}; \p{value} ; \P{value}

Many Unicode properties are supported, including blocks and scripts. \p{property=value} or \p{property:value} matches a character whose property property has value value. The inverse of \p{property=value} is \P{property=value} or \p{^property=value}.

If the short form \p{value} is used, the properties are checked in the order: General_Category, Script, Block, binary property:

  • Latin, the ‘Latin’ script (Script=Latin).

  • BasicLatin, the ‘BasicLatin’ block (Block=BasicLatin).

  • Alphabetic, the ‘Alphabetic’ binary property (Alphabetic=Yes).

A short form starting with Is indicates a script or binary property:

  • IsLatin, the ‘Latin’ script (Script=Latin).

  • IsAlphabetic, the ‘Alphabetic’ binary property (Alphabetic=Yes).

A short form starting with In indicates a block property:

  • InBasicLatin, the ‘BasicLatin’ block (Block=BasicLatin).

POSIX character classes

[[:alpha:]]; [[:^alpha:]]

POSIX character classes are supported. These are normally treated as an alternative form of \p{...}.

The exceptions are alnum, digit, punct and xdigit, whose definitions are different from those of Unicode.

[[:alnum:]] is equivalent to \p{posix_alnum}.

[[:digit:]] is equivalent to \p{posix_digit}.

[[:punct:]] is equivalent to \p{posix_punct}.

[[:xdigit:]] is equivalent to \p{posix_xdigit}.

Search anchor \G

A search anchor has been added. It matches at the position where each search started/continued and can be used for contiguous matches or in negative variable-length lookbehinds to limit how far back the lookbehind goes:

>>> regex.findall(r"\w{2}", "abcd ef")
['ab', 'cd', 'ef']
>>> regex.findall(r"\G\w{2}", "abcd ef")
['ab', 'cd']
  • The search starts at position 0 and matches ‘ab’.

  • The search continues at position 2 and matches ‘cd’.

  • The search continues at position 4 and fails to match any letters.

  • The anchor stops the search start position from being advanced, so there are no more results.

Reverse searching

Searches can also work backwards:

>>> regex.findall(r".", "abc")
['a', 'b', 'c']
>>> regex.findall(r"(?r).", "abc")
['c', 'b', 'a']

Note that the result of a reverse search is not necessarily the reverse of a forward search:

>>> regex.findall(r"..", "abcde")
['ab', 'cd']
>>> regex.findall(r"(?r)..", "abcde")
['de', 'bc']

Matching a single grapheme \X

The grapheme matcher is supported. It conforms to the Unicode specification at http://www.unicode.org/reports/tr29/.

Branch reset (?|...|...)

Group numbers will be reused across the alternatives, but groups with different names will have different group numbers.

>>> regex.match(r"(?|(first)|(second))", "first").groups()
('first',)
>>> regex.match(r"(?|(first)|(second))", "second").groups()
('second',)

Note that there is only one group.

Default Unicode word boundary

The WORD flag changes the definition of a ‘word boundary’ to that of a default Unicode word boundary. This applies to \b and \B.

Timeout

The matching methods and functions support timeouts. The timeout (in seconds) applies to the entire operation:

>>> from time import sleep
>>>
>>> def fast_replace(m):
...     return 'X'
...
>>> def slow_replace(m):
...     sleep(0.5)
...     return 'X'
...
>>> regex.sub(r'[a-z]', fast_replace, 'abcde', timeout=2)
'XXXXX'
>>> regex.sub(r'[a-z]', slow_replace, 'abcde', timeout=2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python310\lib\site-packages\regex\regex.py", line 278, in sub
    return pat.sub(repl, string, count, pos, endpos, concurrent, timeout)
TimeoutError: regex timed out

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

regex-2023.12.25.tar.gz (394.7 kB view details)

Uploaded Source

Built Distributions

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

regex-2023.12.25-cp312-cp312-win_amd64.whl (268.9 kB view details)

Uploaded CPython 3.12Windows x86-64

regex-2023.12.25-cp312-cp312-win32.whl (258.1 kB view details)

Uploaded CPython 3.12Windows x86

regex-2023.12.25-cp312-cp312-musllinux_1_1_x86_64.whl (759.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

regex-2023.12.25-cp312-cp312-musllinux_1_1_s390x.whl (779.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ s390x

regex-2023.12.25-cp312-cp312-musllinux_1_1_ppc64le.whl (775.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ppc64le

regex-2023.12.25-cp312-cp312-musllinux_1_1_i686.whl (742.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

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

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

regex-2023.12.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (789.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

regex-2023.12.25-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (814.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

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

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

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

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

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

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

regex-2023.12.25-cp312-cp312-macosx_11_0_arm64.whl (292.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

regex-2023.12.25-cp312-cp312-macosx_10_9_x86_64.whl (298.1 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

regex-2023.12.25-cp312-cp312-macosx_10_9_universal2.whl (500.4 kB view details)

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

regex-2023.12.25-cp311-cp311-win_amd64.whl (269.5 kB view details)

Uploaded CPython 3.11Windows x86-64

regex-2023.12.25-cp311-cp311-win32.whl (257.8 kB view details)

Uploaded CPython 3.11Windows x86

regex-2023.12.25-cp311-cp311-musllinux_1_1_x86_64.whl (752.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

regex-2023.12.25-cp311-cp311-musllinux_1_1_s390x.whl (776.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ s390x

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

Uploaded CPython 3.11musllinux: musl 1.1+ ppc64le

regex-2023.12.25-cp311-cp311-musllinux_1_1_i686.whl (738.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

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

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

regex-2023.12.25-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (823.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

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

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

regex-2023.12.25-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (772.8 kB view details)

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

regex-2023.12.25-cp311-cp311-macosx_11_0_arm64.whl (291.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl (296.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

regex-2023.12.25-cp311-cp311-macosx_10_9_universal2.whl (497.4 kB view details)

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

regex-2023.12.25-cp310-cp310-win_amd64.whl (269.5 kB view details)

Uploaded CPython 3.10Windows x86-64

regex-2023.12.25-cp310-cp310-win32.whl (257.7 kB view details)

Uploaded CPython 3.10Windows x86

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

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.1+ s390x

regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl (764.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ppc64le

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

Uploaded CPython 3.10musllinux: musl 1.1+ i686

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

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

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

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

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

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

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

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

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

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

regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl (291.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl (296.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl (497.4 kB view details)

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

regex-2023.12.25-cp39-cp39-win_amd64.whl (269.5 kB view details)

Uploaded CPython 3.9Windows x86-64

regex-2023.12.25-cp39-cp39-win32.whl (257.8 kB view details)

Uploaded CPython 3.9Windows x86

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

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

regex-2023.12.25-cp39-cp39-musllinux_1_1_s390x.whl (768.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ s390x

regex-2023.12.25-cp39-cp39-musllinux_1_1_ppc64le.whl (763.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ppc64le

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

Uploaded CPython 3.9musllinux: musl 1.1+ i686

regex-2023.12.25-cp39-cp39-musllinux_1_1_aarch64.whl (743.6 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

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

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

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

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

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

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

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

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

regex-2023.12.25-cp39-cp39-macosx_11_0_arm64.whl (291.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

regex-2023.12.25-cp39-cp39-macosx_10_9_x86_64.whl (296.4 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

regex-2023.12.25-cp39-cp39-macosx_10_9_universal2.whl (497.4 kB view details)

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

regex-2023.12.25-cp38-cp38-win_amd64.whl (269.5 kB view details)

Uploaded CPython 3.8Windows x86-64

regex-2023.12.25-cp38-cp38-win32.whl (257.8 kB view details)

Uploaded CPython 3.8Windows x86

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

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.8musllinux: musl 1.1+ s390x

regex-2023.12.25-cp38-cp38-musllinux_1_1_ppc64le.whl (769.0 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ppc64le

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

Uploaded CPython 3.8musllinux: musl 1.1+ i686

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

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

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

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

regex-2023.12.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (802.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

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

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

regex-2023.12.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

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

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

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

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

regex-2023.12.25-cp38-cp38-macosx_11_0_arm64.whl (291.0 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

regex-2023.12.25-cp38-cp38-macosx_10_9_x86_64.whl (296.4 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

regex-2023.12.25-cp38-cp38-macosx_10_9_universal2.whl (497.3 kB view details)

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

regex-2023.12.25-cp37-cp37m-win_amd64.whl (270.2 kB view details)

Uploaded CPython 3.7mWindows x86-64

regex-2023.12.25-cp37-cp37m-win32.whl (257.6 kB view details)

Uploaded CPython 3.7mWindows x86

regex-2023.12.25-cp37-cp37m-musllinux_1_1_x86_64.whl (733.5 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.7mmusllinux: musl 1.1+ s390x

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

Uploaded CPython 3.7mmusllinux: musl 1.1+ ppc64le

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

Uploaded CPython 3.7mmusllinux: musl 1.1+ i686

regex-2023.12.25-cp37-cp37m-musllinux_1_1_aarch64.whl (732.6 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ARM64

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

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.7mmanylinux: glibc 2.17+ s390x

regex-2023.12.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (801.2 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ppc64le

regex-2023.12.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (760.3 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

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

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

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

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

regex-2023.12.25-cp37-cp37m-macosx_10_9_x86_64.whl (296.9 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25.tar.gz
Algorithm Hash digest
SHA256 29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5
MD5 3f97f0aef9bf334fe50ae5980b183e68
BLAKE2b-256 b53931626e7e75b187fae7f121af3c538a991e725c744ac893cc2cfd70ce2853

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.12.25-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 268.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for regex-2023.12.25-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cc37b9aeebab425f11f27e5e9e6cf580be7206c6582a64467a14dda211abc232
MD5 2584037db69f3d4a1d493675df50ec7d
BLAKE2b-256 1daf4bd17254cdda1d8092460ee5561f013c4ca9c33ecf1aab81b44280327cab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: regex-2023.12.25-cp312-cp312-win32.whl
  • Upload date:
  • Size: 258.1 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for regex-2023.12.25-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 e2610e9406d3b0073636a3a2e80db05a02f0c3169b5632022b4e81c0364bcda5
MD5 6581dcdbb1718fb795523065b3e8edc6
BLAKE2b-256 64c7700257786f4d4974993364469438ac7498288c2b4aa683dc3230de3fd42d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 518440c991f514331f4850a63560321f833979d145d7d81186dbe2f19e27ae3d
MD5 519b4ad5f03ad3edb298a106346273ae
BLAKE2b-256 fa53b473865d5b44d1395874f0b88df5143def8ef2f7bd11424083260aa93461

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 b77e27b79448e34c2c51c09836033056a0547aa360c45eeeb67803da7b0eedaf
MD5 14e35c5fca4e397b52fcb25ab8126006
BLAKE2b-256 12ea73cc9fea46f631a2b36347b7de9d20c9120a45b53924496fe75b9b467682

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 60080bb3d8617d96f0fb7e19796384cc2467447ef1c491694850ebd3670bc457
MD5 3f267143a0fc617d9c77d63c0afdc9fb
BLAKE2b-256 c6b25f135bae42695796b5b68eb7d1aa00d39d16c39e1a60a3e0892ac8c73edc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8c2c19dae8a3eb0ea45a8448356ed561be843b13cbc34b840922ddf565498c1c
MD5 e51f7f8a36722ce192e02570143d67db
BLAKE2b-256 8d4d5546af3d7b50ccc10eb511bec0a1029821882be76c49d8c79116163e6a62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 4bfc2b16e3ba8850e0e262467275dd4d62f0d045e0e9eda2bc65078c0110a11f
MD5 22dd32202d9ce19915ca9da11fd9178f
BLAKE2b-256 48d741efecdd60b117d60618620b0d2af5d0638d1955c9266a5492235ed38fc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 51f4b32f793812714fd5307222a7f77e739b9bc566dc94a18126aba3b92b98a3
MD5 99a8d118c6496a4f93e5f1f14cd389b4
BLAKE2b-256 fe4e242050c3ff38c08f16b31a5a338525def3f85b819fc0c5a97c35217098a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 43f7cd5754d02a56ae4ebb91b33461dc67be8e3e0153f593c509e21d219c5060
MD5 ddf3fa4cb6bb97035082db1d8ff2db26
BLAKE2b-256 a2da2b04560d91bdf49d3ca519c08db68a5d37d02e526b491f1a5c179ec3d21d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d498eea3f581fbe1b34b59c697512a8baef88212f92e4c7830fcc1499f5b45a5
MD5 a98e81d5e1af0102ef16335325f7ca45
BLAKE2b-256 1baaf9beeee2217de48fd47d68fc5ea9655f66440b33fa8212bad42427fe3587

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b7a635871143661feccce3979e1727c4e094f2bdfd3ec4b90dfd4f16f571a87a
MD5 ec5eccc93f92d5442cf10c5a2a800507
BLAKE2b-256 b529ddfd602f350a5f71926fec1f6f1ba9f5fcc7a05b36b364009904a119dfc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ba99d8077424501b9616b43a2d208095746fb1284fc5ba490139651f971d39d9
MD5 a4dbc00358d9c74bade43e85cf4de525
BLAKE2b-256 f9ef14fcc5f19b0e72b64d4d530ae9bb8ba9739f6ced9c80d061c68ff93d5ebc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad83e7545b4ab69216cef4cc47e344d19622e28aabec61574b20257c65466d6a
MD5 d7880088a3d2674493dc716ee9c3c0c1
BLAKE2b-256 666590e759a89534b850fa20e533e587748e967c44f58333b40f6d62718df1b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c3c4a78615b7762740531c27cf46e2f388d8d727d0c0c739e72048beb26c8a9d
MD5 b5a309db18b701a3ffc17b2c5d74f26a
BLAKE2b-256 0bd45498d06a7a05be1b3e1e553d60fb61292afe5ca9fdc2aea5283f30651f1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 8a0ccf52bb37d1a700375a6b395bff5dd15c50acb745f7db30415bae3c2b0715
MD5 40a59bd9ae5e1dabf9c547a9e22abe17
BLAKE2b-256 8bb814527ca54351156f65c90f8728ee62e646a484dbce0e4cbffb34489e5bb0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7d2af3f6b8419661a0c421584cfe8aaec1c0e435ce7e47ee2a97e344b98f794f
MD5 521ba3667331a67a9b454d609ed829d0
BLAKE2b-256 a80118232f93672c1d530834e2e0568a80eaab1df12d67ae499b1762ab462b5c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 68191f80a9bad283432385961d9efe09d783bcd36ed35a60fb1ff3f1ec2efe87
MD5 1be4dcd4e2be5dafa277dbccae1d6eb9
BLAKE2b-256 922a6431462df58f29515be33fa8b3800efa73b2be47664e71af557101e2a733

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 67d3ccfc590e5e7197750fcb3a2915b416a53e2de847a728cfa60141054123d4
MD5 119b06694cf742083694db189f05f8f2
BLAKE2b-256 9733101559f6506a98b55613efa484d072d23fdeca3ef6876d43a8c49c7ec65f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 f44dd4d68697559d007462b0a3a1d9acd61d97072b71f6d1968daef26bc744bd
MD5 252cefe620f3a6764fac9cb760c4c98d
BLAKE2b-256 e36629a1feac5c69907fedd6b3d8562d5ddc7c28fdf8585da6484617fe4c0b5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 283fc8eed679758de38fe493b7d7d84a198b558942b03f017b1f94dda8efae80
MD5 3428f43d4ea452d58f1fe74c52ccdcec
BLAKE2b-256 700f311ada39601c7bd7904b6ab3b01b414438a16efab5f2009f35a273999942

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e8c7e08bb566de4faaf11984af13f6bcf6a08f327b13631d41d62592681d24fe
MD5 89bff4cc08a3c71db9102ccf92565de9
BLAKE2b-256 00d4d876ce23d76103db84f3b2aeb3cba7c6b9b5750a2e2125ef6bfa2be53deb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7502534e55c7c36c0978c91ba6f61703faf7ce733715ca48f499d3dbbd7657e0
MD5 aa20eff8a9a47f61d98dfcd36b5f1679
BLAKE2b-256 c8b5882aa0697e46d29a9f796c91221e03b1beec3c29664718c7d26ce05e7fb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f72cbae7f6b01591f90814250e636065850c5926751af02bb48da94dfced7baa
MD5 11955fdd8554b850ae5e16888ba3bca7
BLAKE2b-256 8d6b2f6478814954c07c04ba60b78d688d3d7bab10d786e0b6c1db607e4f6673

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0fda75704357805eb953a3ee15a2b240694a9a514548cd49b3c5124b4e2ad01b
MD5 f76ed043c59988d4ccc660a9a49fa396
BLAKE2b-256 8dfc8ade283909c52f795bdc9b9fe44f85c6da5417f9be84c3d245706406551e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 636ba0a77de609d6510235b7f0e77ec494d2657108f777e8765efc060094c98c
MD5 0a91ae5119e30298ba898c41093cf1ee
BLAKE2b-256 c169b9671621092a1f9b16892bc638368efb3ce00648ce79b91d472feaa740c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c7ad32824b7f02bb3c9f80306d405a1d9b7bb89362d68b3c5a9be53836caebdb
MD5 d16bc8cf065496e6f0c11cfd3dd4ec7c
BLAKE2b-256 9b71b55b5ffc75918a96ea99794783524609ac3ff9e2d8f51e7ece8648a968f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 db2a0b1857f18b11e3b0e54ddfefc96af46b0896fb678c85f63fb8c37518b3e7
MD5 ac517bead52c659d16e4bec797378571
BLAKE2b-256 2a3a9601d6e8a49ce7a124268c4c79d54f22416242e5096cd4fca07f7bfac46b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d166eafc19f4718df38887b2bbe1467a4f74a9830e8605089ea7a30dd4da8887
MD5 863f2fda813253e163af1205e4909b9b
BLAKE2b-256 609e4b0223e05776aa3be806a902093b2ab1de3ba26b652d92065d5c7e1d4df3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d902a43085a308cef32c0d3aea962524b725403fd9373dea18110904003bac97
MD5 f072029c5eef76ddf48168772542df14
BLAKE2b-256 dcc2b3c89e9c8933ceb2a8f56fcd25f1133f21d8e490fbdbd76160dfc2c83a6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1b9d811f72210fa9306aeb88385b8f8bcef0dfbf3873410413c00aa94c56c2b6
MD5 4b430617f68b1e4c1231f639974f4c18
BLAKE2b-256 2798e2f151d958bea25682118c68f22e49fe98d8797aadfbf0d5df0288118c6d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105
MD5 2890ebfb38ddb0659db10900e040638b
BLAKE2b-256 83eb144d2db5cf2ac3989d0ea4273040218d68bd67422133548da47043423594

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630
MD5 f05882009898d9ea331ad2ad13516b63
BLAKE2b-256 acfcb7b7da0eb7110d1c4529b9d74d5d1ba92f85f0ce32be72f490f5eebfcdab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f
MD5 ea0112b9d89bcf7f94b06f63c40442af
BLAKE2b-256 b551e884e1e021a8819251e09606354733a62decffd703ad6fd1ed9098a003a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423
MD5 9345bae1daa75d237e7c68a68f8f809c
BLAKE2b-256 b85dd2f0a1091c00ee5a854199423609c69eaa8b48a8352a6626c0ae85265b6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392
MD5 55fe406ed0d5a079f4bc3264ce2bb032
BLAKE2b-256 053ce77e4c13492d34171af2765c4263d35573b4b8d813f58bb33dae3da5c897

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1
MD5 d543eb09564975f8c7cd54673bc7b775
BLAKE2b-256 2d068c07ade57639bd30543b96715a0c1eef72d65aabdf7ff6f0b6b1f8bd371f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704
MD5 22a856f9713916be3e6edeacbcf46d86
BLAKE2b-256 a4db7d05718f5157257ee9f980d381f54efdaccb95c0db8e05071ce4d8ee3347

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4
MD5 254d87f436990a025e8a6d4fa80a8708
BLAKE2b-256 818a96a62ce98e8ff1b16db56fde3debc8a571f6b7ea42ee137eb0d995cdfa26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e
MD5 f5b6a2b93840a532ab4fb87953cd69c2
BLAKE2b-256 7a008b2322e246d0a392c91bdb43750bb900fab5d48d693c1497b3ea6656f851

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400
MD5 ccd0904a0c6bae10ccc70e8fd2e93345
BLAKE2b-256 40efacde6b823da62186d4309de039e470e3f08311e5b40b754aec187d82939f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c
MD5 baae1d59663eed7786c4e8d82cf12d8a
BLAKE2b-256 2e1558c7b42d4ebc85b88696483c739d2c3b1db7234d7ab3c1aef50cf9b88d51

See more details on using hashes here.

File details

Details for the file regex-2023.12.25-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.12.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd
MD5 3343d320f0589766b8dbc0e2cb5acd3f
BLAKE2b-256 3fb1df76e0c38fcb7b64b23bd86de820c1cfa7b3b35005122b468df8e93f2bfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5
MD5 d87e8911b4910c18b843c8dbb3c9b97d
BLAKE2b-256 d63b909ab8c13caf117cab2d494f4e0ba5c973a66014b15e8ccd5ec1a704f179

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586
MD5 2f3e20341f2e1109839f1a74b31d3323
BLAKE2b-256 3dd8e5f7fcd33adaa3ce346ff5baf4319956873c49cbb0ed11566f921883096b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8
MD5 58840225b712ab1d633c70bc53ea027a
BLAKE2b-256 8a8d8c70bce12045fa622949d3fd3e4e64a01b506a3e670dada8c5f9b3be1e34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5
MD5 3880d63f61fb7d3b6ae16bee74a5697b
BLAKE2b-256 59d63d8fb38120053e4d7b196f32fa5c3a760f8349cdee02c021617e6e653e61

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e693e233ac92ba83a87024e1d32b5f9ab15ca55ddd916d878146f4e3406b5c91
MD5 10e3c5d4c2ca84ad9a068cc8d724a5d6
BLAKE2b-256 35e1ba18181ac00d2a8d4a920fec1a3cd3a0e279fe4f4b939dc2ea353f41041c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 11a963f8e25ab5c61348d090bf1b07f1953929c13bd2309a0662e9ff680763c9
MD5 6dadee80f4c84a6dd5692ea263581420
BLAKE2b-256 d2a04c4f4b4bab4b82137ece75619fafc2bdecae4d984b2e2a5000c4ea1c10f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3b1de218d5375cd6ac4b5493e0b9f3df2be331e86520f23382f216c137913d20
MD5 a1639df9463ddad3379b9a6a6de5115a
BLAKE2b-256 23ef41e00af6e1eb77acf7295ff50ed3c443b56763dd0c65371058c378b5ce6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 7e316026cc1095f2a3e8cc012822c99f413b702eaa2ca5408a513609488cb62f
MD5 0b73a383b647ba4f4f3031b7d0572334
BLAKE2b-256 d952249f4047a548d84b6f805fcb6e3b44e9590433c748577e3d4cbd89feaf90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 4558410b7a5607a645e9804a3e9dd509af12fb72b9825b13791a37cd417d73a5
MD5 ad5fc2773f71dc56ccc9e0b5cc648906
BLAKE2b-256 6079137700bb0f13ccafeecec8a1302655c2486452d41f28f5775173fa953142

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 905466ad1702ed4acfd67a902af50b8db1feeb9781436372261808df7a2a7bca
MD5 dd03a222e8143dc2c5ef3e97e9453ae2
BLAKE2b-256 dd661274fd78698d799dc4c6b30a5b78c7bfc7b854c0e6e77df8884c21f08f21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 0ecf44ddf9171cd7566ef1768047f6e66975788258b1c6c6ca78098b95cf9a3d
MD5 9367791ef4dfed138fbc65806b00d0c8
BLAKE2b-256 af30027e03ea8312f79d95f9bec5c758c0e423d75620134be5b0eaeda3cfc20b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 531ac6cf22b53e0696f8e1d56ce2396311254eb806111ddd3922c9d937151dae
MD5 2534aec73d1bba53fe50daaec4cab9f3
BLAKE2b-256 059e80c20f1151432a6025690c9c2037053039b028a7b236fa81d7e7ac9dec60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2f4e475a80ecbd15896a976aa0b386c5525d0ed34d5c600b6d3ebac0a67c7ddf
MD5 4e68b02652d54e389fae3b187e9ebf2b
BLAKE2b-256 b90a082d5677a724fdbf8fee8fa65ff4472eb10dee0d028e0d269024fae58bdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 298dc6354d414bc921581be85695d18912bea163a8b23cac9a2562bbcd5088b1
MD5 3d0e8a03bc1b37a9532793f0d438600a
BLAKE2b-256 ee07d62cbcf2b87bd1255f13d7f7a7d5bb9f46d0fca6fb771a0aa6ee441a97d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cc6bb9aa69aacf0f6032c307da718f61a40cf970849e471254e0e91c56ffca95
MD5 9380d1db51fc1248bb098c20f12f2317
BLAKE2b-256 a358ea9e50b29028fea7b8b97ddc246463df4d29a7244c94999baf7ab1d882d0

See more details on using hashes here.

File details

Details for the file regex-2023.12.25-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.12.25-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 89723d2112697feaa320c9d351e5f5e7b841e83f8b143dba8e2d2b5f04e10923
MD5 c9d2b3b75b1483ded81f8168a17a3ce6
BLAKE2b-256 bb212832bfa23fe34d7ff0cf8878ec762362bdafc5107af2229ff42ce008d525

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 22f3470f7524b6da61e2020672df2f3063676aff444db1daa283c2ea4ed259d6
MD5 69bffdf40c92eb7946bfe47650072238
BLAKE2b-256 840e1e435f46997cf601aedb0d0efee86f137d982c3bd5864a4534081f8bb9db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9eda5f7a50141291beda3edd00abc2d4a5b16c29c92daf8d5bd76934150f3edc
MD5 bbad524c464e4ea2a9d8825e3162ea58
BLAKE2b-256 c5b3f5c06f5ebb865a63ea775828038d5ce48263806616e4ad5092ff50e22c93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e14b73607d6231f3cc4622809c196b540a6a44e903bcfad940779c80dffa7be7
MD5 d817b4b9f489a4b9b91c3c07db668e07
BLAKE2b-256 6e822e9bf54a8e9a3d64c31c5f3978aa2cec633078d8bd2d3dbf5b3d62df2ec0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f7bc09bc9c29ebead055bcba136a67378f03d66bf359e87d0f7c759d6d4ffa31
MD5 4282613bd38f6a443b7e224eac3bb7c5
BLAKE2b-256 e2988384cc2f697bcf00398de3faf5727353ca2357381dee70eba2c022e8f569

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b521dcecebc5b978b447f0f69b5b7f3840eac454862270406a39837ffae4e697
MD5 66a4732cbbb42dca758a01b2c4c60baf
BLAKE2b-256 5b40f1f77be3c32770c44c6d06047a8630beac0100298eaa9faf5b6f4a8c8cd8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 d78bd484930c1da2b9679290a41cdb25cc127d783768a0369d6b449e72f88beb
MD5 0717310d120d9f99b44a1d7b17b8d0cd
BLAKE2b-256 0c488413b04134176a59bb40a42f680a3b3ce132c1a3d73ab9d5f5db40874b7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 37f8e93a81fc5e5bd8db7e10e62dc64261bcd88f8d7e6640aaebe9bc180d9ce2
MD5 1bfdfe1609fdc9ba15d2fd3fd6c0d0ce
BLAKE2b-256 49cd4740e6bf0a6d8f00e07be0ea9072548a7d0f80bf7f899291a9381a5e7b92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 98a2636994f943b871786c9e82bfe7883ecdaba2ef5df54e1450fa9869d1f756
MD5 af73efa024dce755b30cd8d720534a82
BLAKE2b-256 c5fbd7d23657fb16e5e01e1129c8b2a2445c884854e188e62655c0285b1cf44b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 9aa1a67bbf0f957bbe096375887b2505f5d8ae16bf04488e8b0f334c36e31360
MD5 07470767e5aa08b82a96defa5126282b
BLAKE2b-256 82713f613eb12ee0513c4cf7eea5be8bb067a6e07523279f6743d7d3d7c62b22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 5cd05d0f57846d8ba4b71d9c00f6f37d6b97d5e5ef8b3c3840426a475c8f70f4
MD5 5ca76b480db94a5e5aad6e7634624bbc
BLAKE2b-256 434aa8005c5aa6bb602fcfab48fa729a05eceade6400d6468dbe713f1796795f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 094ba386bb5c01e54e14434d4caabf6583334090865b23ef58e0424a6286d3dc
MD5 e8044121ae46e764232a16cc9d59f91c
BLAKE2b-256 50b72031d4f803db9eb66cfc1ebf56ca0ce5261961c44088d22a412e962bcd85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9852b76ab558e45b20bf1893b59af64a28bd3820b0c2efc80e0a70a4a3ea51c1
MD5 9aa948b3f4767e0e3ddfa939ef28b267
BLAKE2b-256 eb104ccc8eed80f11c082a2883d49d4090aa80c7f65704216a529f490cb089b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 34e4af5b27232f68042aa40a91c3b9bb4da0eeb31b7632e0091afc4310afe6cb
MD5 09a4ee86d36a54d6a476748e720a114a
BLAKE2b-256 d57c5a531f7690ede1028ba80a78e45c7fd2d7481e316c6f18bf689d24852f2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e81469f7d01efed9b53740aedd26085f20d49da65f9c1f41e822a33992cb1590
MD5 4f8f07350bf1d0307c72d5ab6fc135d4
BLAKE2b-256 b2617f3ac9acb68205cfe5c0ef2210e9982260db817967bfea74871339ea1629

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 086dd15e9435b393ae06f96ab69ab2d333f5d65cbe65ca5a3ef0ec9564dfe770
MD5 4e70d771bdd8f8f44e71465948b81898
BLAKE2b-256 ae0429f5b681c3e4f0cdabdf3b98e7f211385be2de8cbf2577f130d421c7fae5

See more details on using hashes here.

File details

Details for the file regex-2023.12.25-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.12.25-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cc038b2d8b1470364b1888a98fd22d616fba2b6309c5b5f181ad4483e0017861
MD5 a80064c9755908ba0714959b6be0af66
BLAKE2b-256 b82fdbfade801c0d19eaee278b2f2d45c1106158676078f1e95b6716dc0c8d53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ff100b203092af77d1a5a7abe085b3506b7eaaf9abf65b73b7d6905b6cb76988
MD5 951e34d710138a5fa4189932462a8b80
BLAKE2b-256 57592fb680ddb311087fa92d36ac471d2c973cfe6b8ff4a8c2b6d6ad125d67e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7fca9205b59c1a3d5031f7e64ed627a1074730a51c2a80e97653e3e9fa0d415
MD5 13bbd89466ddd5eb2e0fb351c6b6adcc
BLAKE2b-256 d7adc44702756cd84b49bc40a02c8a856813341eb35904e35b4efc1357f41c8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 efb2d82f33b2212898f1659fb1c2e9ac30493ac41e4d53123da374c3b5541e64
MD5 dbae21e81f86e1212797c27ff57f1152
BLAKE2b-256 e562765114c47f070e2fbe6788a96798383a8b9cf1e1baab4035288295dedc6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b43523d7bc2abd757119dbfb38af91b5735eea45537ec6ec3a5ec3f9562a1c53
MD5 579b83d93a9c81b060e9a4bbf86b0619
BLAKE2b-256 2b4ca029f68882fd9689e895ea4f304987fe853a03cee010b0c00c5278d03554

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a6d1047952c0b8104a1d371f88f4ab62e6275567d4458c1e26e9627ad489b445
MD5 26a8acc3806596b9be39015093414d83
BLAKE2b-256 57c999a839d1a5dbdec67c4959bbb371818b435f6128616ac95140406bd2d1cc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 ed19b3a05ae0c97dd8f75a5d8f21f7723a8c33bbc555da6bbe1f96c470139d3c
MD5 cdc8cdbc6966c51b2b93c9c5309a7944
BLAKE2b-256 6e624227b2ad7232fa8cdd34ab35cea2269b605900d7139af3e3fae0fa53a81c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d15b274f9e15b1a0b7a45d2ac86d1f634d983ca40d6b886721626c47a400bf39
MD5 12cf5942b4193099337eae458170d849
BLAKE2b-256 4a6106e359b43c1a2cc288899846eea298aead9821098f58ccffecd167505aba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 3a17d3ede18f9cedcbe23d2daa8a2cd6f59fe2bf082c567e43083bba3fb00347
MD5 881e142dc3389018dcf3fc6a4b4bbf69
BLAKE2b-256 f29e42b68eb9000707e82abe0c360cf46e73d457321b51e62a4dfb5938b148c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 88ad44e220e22b63b0f8f81f007e8abbb92874d8ced66f32571ef8beb0643b2b
MD5 9d03b1008e589a10ab7043d5a611ef51
BLAKE2b-256 d8448c81700465f3fd13ba01bdc2d262339d03aa57d319db3a863889d143a252

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 d6f7e255e5fa94642a0724e35406e6cb7001c09d476ab5fce002f652b36d0c39
MD5 9528a06cbab5d90cffd1f936d6e3d9c8
BLAKE2b-256 a5492d83a9332d97b750cf964a2e8c6c689cc32a328dc7f82379d887ca641968

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 263ef5cc10979837f243950637fffb06e8daed7f1ac1e39d5910fd29929e489a
MD5 1f372f0e14c1bdf3b7e2aa55f3817892
BLAKE2b-256 833e3b0cd5bac2e1c3dda2340e8d46d922b37ccda31ffe24adfcd1c54a6fcae4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 22a86d9fff2009302c440b9d799ef2fe322416d2d58fc124b926aa89365ec482
MD5 1c92183001d4e66499a47e9999b9d04a
BLAKE2b-256 ef2e1e93f6c7a303cc08d9562c96030924b24d45419a78a288ebd6dc61a2246c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5dd58946bce44b53b06d94aa95560d0b243eb2fe64227cba50017a8d8b3cd3e2
MD5 d5c324c0d9e50a531fd6469b8a2aa56d
BLAKE2b-256 eb00208ce4387c9ef72b751c34c4c84667bd8b47a70f3a6cc26f2240f8aab97e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4719bb05094d7d8563a450cf8738d2e1061420f79cfcc1fa7f0a44744c4d8f73
MD5 d1ac0d372c7edd34f556a8f79c7cbf98
BLAKE2b-256 4c6cc3c1c4f8249371546a6a4b43ce360d8fa8970ffef1e4a276f4cc9e9b8565

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d126361607b33c4eb7b36debc173bf25d7805847346dd4d99b5499e1fef52bc7
MD5 0c3ad065408beeddf7a30deb16f3e207
BLAKE2b-256 32917a7e2c80280df22b93c4aff5c8d1ef42f741a938f20ad7de68adc55e2a7b

See more details on using hashes here.

File details

Details for the file regex-2023.12.25-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.12.25-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e692296c4cc2873967771345a876bcfc1c547e8dd695c6b89342488b0ea55cd8
MD5 aeb4d09ece12f12c0a103f57234e5373
BLAKE2b-256 7be6f22ad63b72ff39101d7b7dbeff81a78bc8b82b1106c8b73d1c460983c885

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2aae8101919e8aa05ecfe6322b278f41ce2994c4a430303c4cd163fef746e04f
MD5 956b80f176b2ab763e4598de115ca96f
BLAKE2b-256 30ca330269e793b12059dd2a220fa6a62d31e7397afe59b92e993ec66b71d9b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for regex-2023.12.25-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 da695d75ac97cb1cd725adac136d25ca687da4536154cdc2815f576e4da11c69
MD5 6b0fbb31b583f1ed040809152df9f390
BLAKE2b-256 bea8165b58247039958bac3be16ea6d96b868c3e535fd96e2b102f1c04e9ca21

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