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. Позже вы узнаете, как сопоставить строку времени с допустимыми значениями, используя чередование.

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *