Создание регулярки из букв
Регулярка должна состоять только из русских букв, только ОДНА буква может быть заглавной, без пробелов и других знаков
deep_ocean = '''Окунь форель щУка Щука ФОрель Форель'''
import re
nemo_pattern = '([А-Я][а-я])'
matched_at_begin = re.match (nemo_pattern, deep_ocean)
print (matched_at_begin)
выводит вот это <re.Match object; span=(0, 2), match='Ок'>
Что это значит?
Ответы (2 шт):
это значит тип данных, который возвращает re.match (). Означает, что найдена подстрока, удовлетворяющая регулярке. span=(0, 2) означает, что найденная подстрока начинается на позиции 0 (т.е. первый символ), заканчивается на позиции 1 (т.е. второй символ). Сама подстрока указана в match.
Чтобы вывести саму найденную подстроку нужно использовать
print (matched_at_begin.group())
А как насчет такого?
\bиспользуется для определения границ*- указывает на от 0 до бесконечного количества совпадений- Метод
re.findallвернет список
Если будет одна буква в верхнем регистре её тоже должно вытащить, но в таком случае можно отфильтровать список words, оставив в нем те, что имеют больше 1 символа
Пример:
import re
deep_ocean = '''Окунь форель щУка Щука ФОрель Форель'''
nemo_pattern = r'\b([а-я]*[А-Я][а-я]*)\b'
words = re.findall(nemo_pattern, deep_ocean)
print(words)
# ['Окунь', 'щУка', 'Щука', 'Форель']