DoctorX
@DoctorX
Веб разработчик

С помощью регулярного выражения получить массив между двумя метками

#word1#--start--#word2#word3#dflsjdf#--end--#word4#word5#

Задача: С помощью регулярного выражения получить массив слов между двумя метками (start, end) Чтобы в результате получить
word2, word3, dflsjdf
Слов может быть произвольное количество.
  • Вопрос задан
  • 3483 просмотра
Пригласить эксперта
Ответы на вопрос 3
BuriK666
@BuriK666
Компьютерный псих
/--start--#(.*)#--end--/ и потом полученный результат разбить по символу #
Ответ написан
Если только одним регулярным выражением, то можно вот таким:

/--start--#(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?(?:([^#]*)#)?--end--/

Только вот произвольное количество уже не получается, только до определённого числа (здесь — до пятидесяти). Ну и результат получится, скажем так, не совсем чистым — но тут уже всё зависит от используемого языка.
Ответ написан
@dikkini
(/--start--#(.*)#--end--/).split("#").toArray(); — одним выражением
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы