Практические примеры поиска в строках
Валидация адресов электронной почты
Одним из распространенных случаев использования метода 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("[email protected]")) ## 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 [email protected]"
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 - проектах.