Границы слова для регулярного выражения в Python
В этом уроке вы узнаете, как создавать регулярные выражения в Python, соответствующие позициям границ слов в строке.
Что такое границы слов регулярного выражения в Python?
Строка имеет следующие позиции, которые можно считать границами слов:
- Перед первым символом строки, если первый символ является символом слова (\w).
- Между двумя символами в строке, если первый символ является символом слова (\w), а другой нет (\W – набор символов, обратный символу слова \w).
- После последнего символа в строке, если последний символ является символом слова (\w)
На следующем рисунке показаны позиции границ слов в строке «PYTHON 3!»:
В этом примере команды «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».