Я хотел бы преобразовать строку вроде: hello!world.what?up
в ["hello!", "world.", "what?", "up"]
.split(/[?=<\.\?\!>]+/)
близко к тому, что я ищу, и возвращает:
["hello", "world", "what", "up"]
.split(/(?=[\?\!\.])/)
еще немного ближе, что возвращает:
["hello", "!world", ".what", "?up"]
Это делает трюк, но это не красиво:
.split(/(?=[\?\!\.])/).map((s, idx, arr) => { (idx > 0) s = s.slice(1); return idx < arr.length - 1 ? s + arr[idx+1][0] : s }).filter(s => s)
Как бы я перефразировал это, чтобы получить желаемый результат?
Редактировать: Обновленный вопрос.