Практические примеры поиска в строках
Валидация адресов электронной почты
Одним из распространенных случаев использования метода search() является валидация адресов электронной почты. Вот пример:
import re
def is_valid_email(email):
pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
match = re.search(pattern, email)
return bool(match)
## Test the function
print(is_valid_email("example@labex.io")) ## True
print(is_valid_email("invalid_email")) ## False
Регулярное выражение, используемое в этом примере, проверяет следующее:
^: Начало строки
[\w\.-]+: Одно или несколько буквенно-цифровых символов, точек или дефисов (локальная часть адреса электронной почты)
@: Символ "@"
[\w\.-]+: Одно или несколько буквенно-цифровых символов, точек или дефисов (доменная часть адреса электронной почты)
\.: Фактическая точка
\w+: Одно или несколько буквенно-цифровых символов (верхнеуровневый домен)
$: Конец строки
Извлечение URL из текста
Другим распространенным случаем использования является извлечение URL из более крупного текста. Вот пример:
import re
text = "Visit our website at https://www.labex.io or contact us at info@labex.io"
pattern = r'https?://\S+'
matches = re.findall(pattern, text)
for match in matches:
print(match)
Вывод:
https://www.labex.io
В этом примере регулярное выражение r'https?://\S+' соответствует URL, начинающимся с http:// или https://, за которыми следует одно или несколько непробельных символов.
Функция re.findall() используется для поиска всех совпадений в тексте, а затем выводится полученный список совпадений.
Изучая эти практические примеры, вы можете увидеть, как метод search() и регулярные выражения могут быть применены для решения реальных задач по манипуляции и извлечению строк в ваших Python - проектах.