25 lines
992 B
Python
25 lines
992 B
Python
# BotLibrary/validators/url_valid.py
|
|
# Валидатор ссылок на регулярных выражениях
|
|
|
|
import re
|
|
|
|
# Настройка экспорта из этого модуля
|
|
__all__ = ("valid_url",)
|
|
|
|
|
|
# Функция определения является ли строка ссылкой
|
|
def valid_url(url: str) -> bool:
|
|
"""
|
|
Проверяет, является ли строка валидной ссылкой (URL).
|
|
|
|
:param url: Строка для проверки.
|
|
:return: True, если строка является валидным URL, иначе False.
|
|
"""
|
|
url_pattern = re.compile(
|
|
r'^(https?://)?' # Протокол (http или https, необязателен)
|
|
r'([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}' # Домен
|
|
r'(:\d+)?' # Порт (необязателен)
|
|
r'(/[-a-zA-Z0-9@:%_+.~#?&//=]*)?$' # Путь, параметры и фрагменты
|
|
)
|
|
return bool(url_pattern.match(url))
|