
Я хочу найти последние 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+$