Как получить строки после совпадения слова и перед другим конкретным словом? - PullRequest
0 голосов
/ 22 января 2019

У меня есть эта строка:

Обзор

Кто-то запрашивает отзыв

Заголовок

Тест

Тест

Разрешение

Я хотел бы получить все строки после слова " Overview " и перед словом " Resolution "

Я пробовал это регулярное выражение: Overview.*[\r\n]+(.*)

https://regex101.com/r/QibhMq/1

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Это может показаться излишним, но вложенная повторяющаяся группа и фактические граничные слова должны быть довольно устойчивыми:

Overview[\r\n]((?:.*[\r\n].*)*)Resolution

Демонстрация в JS:

const data = `Something
Overview
Somebody request a review
Title
Test
Test
Resolution
Blah
Something`

const after = "Overview"
const before = "Resolution"

const regex = new RegExp(`${after}[\r\n]((?:.*[\r\n].*)*)${before}`)

const match = data.match(regex)
if (match) console.log(match[1])

enter image description here

Демонстрация и объяснение по Regex101: https://regex101.com/r/QibhMq/6

0 голосов
/ 22 января 2019

Для этого вам нужно использовать модификаторы. Я бы порекомендовал использовать

/ с однострочный

Overview.*[\r\n]+(.*)/s

Демонстрация в Интернете

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