<jupyter_start><jupyter_text>**Задание 1**Напишите функцию, которая принимает на вход строку и проверяет является ли она валидным транспортным номером (1 буква, 3 цифры, 2 буквы, 2-3 цифры). Обратите внимание, что не все буквы кириллического алфавита используются в транспортных номерах.Если номер валиден, то функция должна возвращать отдельно номер и регион.Примеры работы программы:car_id = 'А222BС96’Результат: Номер А222BС валиден. Регион: 96car_id = 'АБ22ВВ193’Результат: Номер не валиден<jupyter_code>import re
def car_number(car_id):
    '''
    Функция проверки корректности гос.номера РФ автомобиля 
    '''
    validate = re.findall(r'([АВЕКМНОРСТУХ]\d{3}[АВЕКМНОРСТУХ]{2})(\d{2,3})', car_id)
    if validate:
        print('Номер', car_id, 'валиден. Регион:',validate[0][1])
    else:
        print('Результат: Номер не валиден')
car_number('А222ВС96')
car_number('Б222ВВ193')
car_number('АБ22ВВ193')
car_number('А222ВВ193')<jupyter_output>Номер А222ВВ193 валиден. Регион: 193<jupyter_text>**Задание 2**Напишите функцию, которая будет удалять все последовательные повторы слов из заданной строки при помощи регулярных выражений.Пример работы программы:some_string = ‘Напишите функцию функцию, которая будет будет будет будет удалять все все все все последовательные повторы слов из из из из заданной строки строки при помощи регулярных выражений’Результат: Напишите функцию, которая будет удалять все последовательные повторы слов из заданной строки при помощи регулярных выражений.<jupyter_code>string = 'Напишите функцию функцию, которая будет будет будет будет удалять все все все все последовательные повторы слов из из из из заданной строки строки при помощи регулярных выражений'
def del_replay(string):
    while re.findall(r'(\b\w+\b)\W*\1+', string):
        string = re.sub(r'(\b\w+\b)\W*\1+', r'\1', string)
    print(string)
del_replay(string)
def remove_repeats(string):
   return re.sub(r'(\w+)(\s\1)+', r'\1', string)
remove_repeats(string)
re.findall(r'(\w+)(\s\1)+',string)<jupyter_output><empty_output><jupyter_text>**Задание 3**Напишите функцию, которая будет возвращать акроним по переданной в нее строке со словами.Примеры работы программы:some_words = 'Информационные технологии’ Результат: ИТsome_words = 'Near Field Communication’ Результат: NFC<jupyter_code>def acronym(string):
    text = ''
    result = re.findall(r'(\b\w)', string)
    for i in result:
        text += i
    print(str.upper(text))
acronym('Near Field Communication')
acronym('Информационные технологии')
acronym('скушай ещё этих .. французских булок')<jupyter_output>СЕЭФБ<jupyter_text>**Задание 4**Напишите функцию, которая будет принимать на вход список email-адресов и выводить их распределение по доменным зонам.Пример работы программы:emails = [<EMAIL>, <EMAIL>, <EMAIL>, <EMAIL>, <EMAIL>, <EMAIL>]Результат:gmail.com: 2 test.in: 1 ya.ru: 2 mail.ru: 1<jupyter_code>emails = ['<EMAIL>', '<EMAIL>', '<EMAIL>', '<EMAIL>', '<EMAIL>', '<EMAIL>']
def mail(mails):
    my_list=[]
    for i in emails:
        my_list.extend(re.findall(r'(?<=@)\w+\.\w{2,3}',i))
    for i in set(my_list):
        print(i, my_list.count(i))

mail(emails)<jupyter_output>gmail.com 2
mail.ru 1
ya.ru 2
test.in 1
{'fraction_non_alphanumeric': 0.12480450422270879, 'fraction_numerical': 0.024085079762277136, 'mean_word_length': 5.526530612244898, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 26, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '242631', 'license': 'PSF-2.0', 'n_tokens_mistral': 1377, 'n_tokens_neox': 1537, 'n_words': 301, 'path': 'homework8.ipynb', 'repo_name': 'BatrakovA/HW8', 'size': '3249'}