НачатьНачать бесплатно

Практика регулярных выражений: 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.____(____, ____))
Редактировать и запускать код