Практика регулярных выражений: re.split() и re.findall()
Теперь вам предстоит написать несколько регулярных выражений для поиска цифр, строк и не буквенно-цифровых символов. Сначала выведите переменную my_string в оболочке IPython, чтобы понять, как лучше всего составить шаблоны для каждого из шагов.
Примечание: рекомендуется добавлять к шаблонам регулярных выражений префикс r, чтобы они интерпретировались именно так, как вы задумали. В противном случае могут возникнуть проблемы, связанные с экранирующими последовательностями. Например, "\n" в Python обозначает новую строку, но с префиксом r эта последовательность будет интерпретирована как строка "\n" — то есть как символ "\", за которым следует символ "n" — а не как символ новой строки.
Модуль регулярных выражений re уже импортирован.
Помните из видео: в библиотеке regex принято всегда передавать сначала шаблон, а затем строку.
Это упражнение является частью курса
Введение в обработку естественного языка на Python
Инструкции к упражнению
- Разбейте
my_stringпо окончаниям предложений. Для этого:- Создайте шаблон
sentence_endings, который соответствует знакам конца предложения (.?!). - Используйте
re.split(), чтобы разбитьmy_stringпо этому шаблону, и выведите результат.
- Создайте шаблон
- Найдите и выведите все слова с заглавной буквы в
my_string: создайте шаблонcapitalized_wordsи используйтеre.findall().- Помните шаблон
[a-z]из видео для поиска строчных символов? Измените его соответствующим образом, чтобы искать символы в верхнем регистре.
- Помните шаблон
- Создайте шаблон
spacesдля поиска одного или нескольких пробелов ("\s+"), а затем используйтеre.split(), чтобы разбитьmy_stringпо этому шаблону, сохранив все знаки пунктуации. Выведите результат. - Найдите все цифры в
my_string: создайте шаблонdigits("\d+") и используйтеre.findall(). Выведите результат.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Write a pattern to match sentence endings: sentence_endings
sentence_endings = r"[___]"
# Split my_string on sentence endings and print the result
print(re.____(____, ____))
# Find all capitalized words in my_string and print the result
capitalized_words = r"[___]\w+"
print(re.____(____, ____))
# Split my_string on spaces and print the result
spaces = r"___"
print(re.____(____, ____))
# Find all digits in my_string and print the result
digits = r"___"
print(re.____(____, ____))