Как разобрать строку по нескольким 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")
]

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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект