Выбрать текст по ограничителям

283
09 апреля 2017, 03:13

Допустим имеется документ такого содержания:

Ненужный текст
//->strat
   Любой текст и символы номер 1
//->end
Ненужный текст
//->strat
   Любой текст и символы номер 2
//->end
Ненужный текст

Как правильно составить регулярное выражение для JS, что бы после поиска выходной массив был плана

[0] => 'Любой текст и символы номер 1'
[1] => 'Любой текст и символы номер 2'

То есть что бы выбирались участки текста только между "открывающими"и "закрывающими" ключами?

Предположил такое выражение /\/\/->start([\s\S]*)\/\/->end/(кликабельно), но понятное дело оно работает не так как нужно. Предполагаю, что необходимо как-то ограничить фрагмент с [\s\S], но как именно понять не могу.

Буду благодарен за помощь.

Answer 1

Вам нужен ленивый поиск /\/\/->start([\s\S]*?)\/\/->end/g

Получить искомый массив в JS можно так:

var re = /\/\/->start([\s\S]*?)\/\/->end/g;
var str = '<ваш текст>';
var m;
var a = [];
while (m = re.exec(str)) {
    a.push(m[1]);    
}
READ ALSO
Получить order_id в редактируемой таблице

Получить order_id в редактируемой таблице

Есть таблица в ней поле ttn нужно что бы оно редактировалось, при клике появляется поле для изменения данных

284
нужен скрипт для интернет магазина! у меня все товары дублируется

нужен скрипт для интернет магазина! у меня все товары дублируется

Необходимо сделать скрипт, который сможет автоматически задавать нужные классы элементамДля четных элементов - fl, а для нечетных - fr Сейчас...

269
SQL запрос на выборку из двух таблиц

SQL запрос на выборку из двух таблиц

Существует две таблицы: dialog(id,firstname) и message(id, dialog_id, text, time)Необходимо выбрать все записи dialog, при этом к каждой записи dialog выбрать последнюю...

394
Разница во времени на Java

Разница во времени на Java

Как задать 2 даты и посмотреть сколько времени между ними прошло

374