Доброе утро
(Я видел, что в этой теме МНОГО ответов, но я не смог найти ни одного подходящего)
Я пишу небольшой парсер на javascript, который бы разрезал текст на такие разделы:
var tex = "hello this :word is apart"
var parsed = [
"hello",
" ",
"this",
" ",
// ":word" should not be there, neither "word"
" ",
"is",
"apart"
]
идеальное регулярное выражение для этого:
/((?!:[a-z]+)([ ]+|(?<= |^)[a-z]*(?= |$)))/g
Но у него есть положительный взгляд назад, который, как я читал, был реализован в javascript только в 2018 году, поэтому я предполагаю, что у него много конфликтов совместимости с браузерами ... и я бы хотел, чтобы у него был хотя бы небольшая совместимость ...
Я считал :
- пытается захватить группы (? :), но он занимает пространство до ...
- просто удалите пробелы, но ": word" будет заменено словом "word"
- разобрать текст 2 раза, один для слов, другой для пробелов, но я боюсь, что разместить их в правильном порядке будет сложно
Поймите, МНЕ НУЖНЫ слова И ВСЕ пробелы, а некоторые слова исключить. Я открыт в других методах, например, не использую регулярное выражение.
мой последний вариант:
удаление пробелов - проверка и организация всего моего регулярного выражения в правильном порядке, молясь, чтобы ": word" хранилось в группе "специальные слова" прежде всего.
мой вопрос:
будет ли это работать в javascript и быть надежным?
Я пытался
/(((:[a-z]+)|([ ]+)|([a-z]*))/g
в https://regexr.com/, похоже, работает, будет ли это работать в каждом случае?