Границы слова для регулярного выражения в Python

В этом уроке вы узнаете, как создавать регулярные выражения в Python, соответствующие позициям границ слов в строке.

Что такое границы слов регулярного выражения в Python?

Строка имеет следующие позиции, которые можно считать границами слов:

  1. Перед первым символом строки, если первый символ является символом слова (\w).
  2. Между двумя символами в строке, если первый символ является символом слова (\w), а другой нет (\W – набор символов, обратный символу слова \w).
  3. После последнего символа в строке, если последний символ является символом слова (\w)

На следующем рисунке показаны позиции границ слов в строке «PYTHON 3!»:

Граница слова регулярного выражения Python

В этом примере команды «PYTHON 3!» строка имеет четыре позиции на границе слов:

  • Перед буквой P (критерий №1)
  • После буквы N (критерий №2)
  • Перед цифрой 3 (критерий №2)
  • После цифры 3 (критерий №2)

Регулярные выражения используют \b для обозначения границы слова. Например, вы можете использовать \b для соответствия всему слову, используя следующий шаблон:

r'\bword\b'

Следующий пример соответствует слову Python в строке:

import re

s = 'CPython is the implementation of Python in C'
matches = re.finditer('Python', s)
for match in matches:
    print(match.group())

Он возвращает два совпадения: одно в слове CPython, а другое в слове Python.

Python
Python

Однако если вы используете границу слова \b, программа вернет одно совпадение:

import re

s = 'CPython is the implementation of Python in C'
matches = re.finditer(r'\bPython\b', s)
for match in matches:
    print(match.group())

Выход:

<re.Match object; span=(33, 39), match='Python'>

В этом примере шаблон «\bPython\b» соответствует всему слову Python в строке «CPython — это реализация Python на C».

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

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