Используете положительный взгляд внутри позитивного взгляда? - PullRequest
3 голосов
/ 05 октября 2019

Я хочу использовать положительный прогноз внутри позитивного взгляда, но, похоже, он не работает.

Я пробовал следующее: (?<=Chapter 1(?=Introduction))(.*)(?=Chapter 2)

Полный текст:

Chapter 1
Introduction

Lorem Ipsum is simply dummy text

Chapter 2
Introduction

Lorem Ipsum is simply dummy text```

1 Ответ

0 голосов
/ 05 октября 2019

Вместо того, чтобы смотреть назад, вы можете сопоставить главу 1 до введения. Затем используйте группу захвата с повторяющимся шаблоном, которая проверяет, начинается ли строка с главы 2.

^Chapter 1[\r\n]+Introduction[\r\n]+((?:(?!Chapter 2).*(?:\r?\n|$))*)

По частям

  • ^ Начало строки
  • Chapter 1[\r\n]+ Совпадение с главой 1 и 1+ новыми строками Introduction[\r\n]+ Match Introduction and 1+ newlines
  • ( Захват группа 1
    • (?: Группа без захвата
      • (?!Chapter 2).* Отрицательный прогноз, проверка не начинается с Главы 2
      • (?:\r?\n|$) Сопоставьте либо новую строку, либо подтвердите конец строки
    • )* Закрытьгруппа без захвата и повторение 0+ раз
  • ) Закрыть группу захвата 1

Regex demo

Если вам нужны совпадения для всех глав, вы можете изменить число 1 на \d+ и число 2 в \d

См. Еще одну демонстрацию regex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...