Задать вопрос

Как разобрать строку по нескольким regexp, в той последовательности, в какой они встречаются?

Привет!

Есть строка вида:
"Some string with a sequence of substrings like #123123 and myemail@gmail.com"

Где каждое из слов в предложении нужно обернуть в определенный тип и положить в массив именно в той последовательности, в которой они встречаются, например:
[
    new Headword("Some"), 
    new PlainText("string"), 
    new PlainText("with"), 
    etc, 
    new PostalСode("123123"),  
    new Email("myemail@gmail.com")
]

Придумать регулярное выражение для каждого из типа несложно, но положить в той же последовательности, в какой они встречается пока не знаю, как. В этом и вопрос
  • Вопрос задан
  • 200 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@MiiNiPaa
Создайте класс, который будет хранить регулярку, проверяющей слово и тип, в который нужно обернуть (или замыкание, которое будет заворачивать, или функцию...).
Создайте столько "пар" регулярка-тип, сколько нужно. Положите их в массив по приоритету (очевидно, что PlainText должен быть последним).
Для каждого цикла проходитесь циклом по массиву "пар". Если очередная регулярка подошла, создавайте соответствующую обертку, запихивайте в массив-результат и переходите к следующему слову.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы