Выберите последние 5 слов абзаца в Regex

Выберите последние 5 слов абзаца в Regex

Я хочу найти последние 5 слов каждого абзаца в документе. Я использую Notepad++, а также Adobe InDesign GREP

Образец данных

Здесь вы найдете упражнения для практики навыков чтения. Чтение поможет вам улучшить понимание языка и расширить словарный запас.

Уроки самостоятельного обучения в этом разделе написаны и организованы по уровню владения английским языком на основе Общеевропейских компетенций владения иностранным языком (CEFR). Существуют различные типы текстов и интерактивных упражнений, которые практикуют навыки чтения, необходимые для успешной учебы, продвижения на работе и общения на английском языке в свободное время.

Пройдите наш бесплатный онлайн-тест по английскому языку, чтобы узнать, какой уровень выбрать. Выберите свой уровень, от уровня английского языка A1 (элементарный) до уровня английского языка C1 (продвинутый), и совершенствуйте свои навыки чтения в удобном для вас темпе, когда вам удобно.

Я написал этот код, который выбирает только последнее слово. Даже если я изменю 5 на 3, он все равно выберет только последнее слово.

(\H*){5}(?=$)

решение1

Прежде всего, давайте объясним ваше регулярное выражение:

  • (\H*){5}соответствует 5 раза по 0 или более негоризонтальных пробелов, соответствует одному слову длиной не менее 0 или 5 или более символов.
  • (?=$)не имеет смысла, вы хотите использовать $, этого достаточно.

Регулярное выражение, которое вам следует использовать, следующее:(?:\h\H+){5}$

  • (?:\h\H+){5}# 1 горизонтальный пробел, за которым следует 1 или более не горизонтальных пробелов, должен встречаться 5 раз
  • $ # конец линии

Если вы не хотите сопоставлять пробел перед первым словом, используйте:

(?:\H+\h){4}\H+$

Связанный контент