Anchors в Python: якоря регулярных выражений с примерами
В этом уроке вы узнаете, как использовать Regex Anchors (якоря регулярных выражений) в Python для сопоставления позиций символов, включая начало и конец строки.
Что такое якоря регулярных выражений?
Регулярные выражения предоставляют вам две привязки, соответствующие позициям символов:
- ^ – привязка курсора соответствует началу строки.
- $ – привязка доллара соответствует концу строки.
В следующем примере \d\d используется для сопоставления двух цифр в строке времени:
import re time = '12:20' matches = re.finditer('\d\d', time) for match in matches: print(match.group())
Он возвращает два совпадения:
12 20
Если вы используете якорь курсора(^), вы получите одну группу, состоящую из двух цифр в начале строки. Например:
import re time = '12:20' matches = re.finditer('^\d\d', time) for match in matches: print(match.group())
Выход:
12
Аналогично, если вы используете якорь $, вы получите последние две цифры, поскольку $ соответствует \d\d в конце строки времени:
import re time = '12:20' matches = re.finditer('\d\d$', time) for match in matches: print(match.group())
Выход:
20
Чтобы проверить, является ли строка строкой времени, вы можете объединить привязки (^) и ($). Например:
import re time = '12:20' matches = re.finditer('^\d\d:\d\d$', time) for match in matches: print(match.group())
Выход:
12:20
Обратите внимание, что шаблон ^\d\d:\d\d$ не проверяет допустимые часы и минуты. Например, он также соответствует следующей строке:
30:99
Это недопустимая строка времени, поскольку действительный час — от 1 до 24, а допустимая минута — от 00 до 59. Позже вы узнаете, как сопоставить строку времени с допустимыми значениями, используя чередование.