Skip to content

Instantly share code, notes, and snippets.

@repen
Created August 10, 2021 19:46
Show Gist options
  • Save repen/54b4c621515dc0489da8f2ce4ad6b19b to your computer and use it in GitHub Desktop.
Save repen/54b4c621515dc0489da8f2ce4ad6b19b to your computer and use it in GitHub Desktop.
text
import re
# 1 Пароль: только латиница, наличие строчной и заглавной буквы, цифры и минимум 12 символов
re.compile(r"^(?=.*[A-z0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{12,}$")
# 2 Номер телефона КЗ формата
re.compile(r"^\+?(?:7|8)\s?\(?(?:7|6)\d{2}\)?\s?\d{3}\s?\d{2}\s?\d{2}$")
# 3 Email
re.compile(r"^[A-z0-9-_]+@[A-z0-9-]{2,255}\.[a-z]{2,10}$")
# 4 ИИН
re.compile(r"[0-9]{10}|[0-9]{12}")
# 5 В тексте найдите имя пользователя, Имя человека в тексте всегда будет идти
# после слова “имя”. Пример строки: Моё имя Иван.
re.compile(r"(?=.*имя|Имя).*\s(\b[А-Я]{1}[а-я]+\b)", re.DOTALL)
# 6 Найдите в тексте слово “знаю”, исключая варианты “не знаю”. В тексте “Я знаю
# ответ” выражение должно сработать, В тексте “Я не знаю ответа” выражение
# должно проигнорировать строку.
re.compile(r"(?=.*(?<!не\s)(знаю)).*", re.DOTALL)
# 7 В тексте найдите дату в формате ДД.ММ.ГГГГ и на выходе с помощью замены
# получите результат ГГГГ-ММ-ДД
string = ""
pattern = re.compile(r"(?:0[1-9]|[1-2][0-9]|3[0-1])\.(?:[0][1-9]|[1][0-2])\.(?:[1-2]{1}[0-9]{3})")
collect = re.findall(pattern, string)
for ddmmyyyy in collect:
d, m, y = ddmmyyyy.split(".")
new_format = "-".join([y, m, d])
string = re.sub(ddmmyyyy, new_format, string)
# 8 В тексте найдите рядом стоящие повторяющиеся слова и добавьте в список
string = ""
pattern = re.compile(r"(\w+)\s+(?=\1)", re.IGNORECASE)
words = re.findall(pattern, string)
# 9 При наличии в тексте подтверждения в формате “согласен” и возможных
# склонений вывести ответ “Переходим дальше”, в остальных случаях “Вы
# отказались”
def find_accept(text: str) -> str:
pattern = re.compile(r"соглас(?:ен|на|ны|но)", re.IGNORECASE)
result = re.search(pattern, text)
return "Переходим дальше" if result else "Вы отказались"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment