Podziel ciąg znaków na pojedyncze wystąpienie (nie dwa razy) separatora w Javascript

Jest to lepiej wyjaśnione na przykładzie. Chcę osiągnąć taki podział:

two-separate-tokens-this--is--just--one--token-another

->

["two", "separate", "tokens", "this--is--just--one--token", "another"]

Próbowałem naiwniestr.split(/-(?!-)/) i nie będzie pasował do pierwszego wystąpienia podwójnych ograniczników, ale będzie pasował do drugiego (ponieważ nie następuje po nim separator):

["two", "separate", "tokens", "this-", "is-", "just-", "one-", "token", "another"]

Czy mam lepszą alternatywę niż pętla przez łańcuch?

Nawiasem mówiąc, następnym krokiem powinno być zastąpienie dwóch kolejnych ograniczników tylko jednym, więc jest to rodzaj ucieczki od ogranicznika przez jego powtórzenie ... Tak więc końcowy wynik będzie taki:

["two", "separate", "tokens", "this-is-just-one-token", "another"]

Jeśli można to osiągnąć w jednym kroku, to powinno być naprawdę niesamowite!

questionAnswers(3)

yourAnswerToTheQuestion