Летуновский Кирилл Ефимович 515 IPv6Match 364
Толстобров Илья Андреевич IPv6Match 191
f1import ref1import re
22
3def ipv6match(s):3def ipv6match(s):
4    h16 = '[0-9A-Fa-f]{1,4}'4    h16 = '[0-9A-Fa-f]{1,4}'
5    ipv6_full = f'(?:{h16}:){{7}}{h16}'5    ipv6_full = f'(?:{h16}:){{7}}{h16}'
6    ipv6_7 = f'(?:{h16}:){{1,7}}:'6    ipv6_7 = f'(?:{h16}:){{1,7}}:'
7    ipv6_6 = f'(?:{h16}:){{1,6}}:{h16}'7    ipv6_6 = f'(?:{h16}:){{1,6}}:{h16}'
n8    ipv6_52 = f'(?:{h16}:){{1,5}}(?::{h16}){{1,2}}'n8    ipv6_5 = f'(?:{h16}:){{1,5}}(?::{h16}){{1,2}}'
9    ipv6_43 = f'(?:{h16}:){{1,4}}(?::{h16}){{1,3}}'9    ipv6_4 = f'(?:{h16}:){{1,4}}(?::{h16}){{1,3}}'
10    ipv6_34 = f'(?:{h16}:){{1,3}}(?::{h16}){{1,4}}'10    ipv6_3 = f'(?:{h16}:){{1,3}}(?::{h16}){{1,4}}'
11    ipv6_25 = f'(?:{h16}:){{1,2}}(?::{h16}){{1,5}}'11    ipv6_2 = f'(?:{h16}:){{1,2}}(?::{h16}){{1,5}}'
12    ipv6_1 = f'{h16}:(?:(?::{h16}){{1,6}})'12    ipv6_1 = f'{h16}:(?:(?::{h16}){{1,6}})'
13    ipv6_0 = f':(?:(?::{h16}){{1,7}}|:)'13    ipv6_0 = f':(?:(?::{h16}){{1,7}}|:)'
t14    ipv6_pattern = '^(' + '|'.join([ipv6_full, ipv6_7, ipv6_6, ipv6_52t14    ipv6_pattern = '^(' + '|'.join([ipv6_full, ipv6_7, ipv6_6, ipv6_5, i
>ipv6_43, ipv6_34, ipv6_25, ipv6_1, ipv6_0]) + ')$'>pv6_4, ipv6_3, ipv6_2, ipv6_1, ipv6_0]) + ')$'
15    return re.match(ipv6_pattern, s)15    return re.match(ipv6_pattern, s)
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op