Вы можете получить split для разделения на что угодно, включая регулярные выражения. Что-то вроде:
s.split( /\s|==|!=/ )
... может быть начало.
Отказ от ответственности: regexen заставляет мою голову болеть. Я проверил это сейчас, и оно работает против вашего примера.
ОБНОВЛЕНИЕ: Нет, это не так. split всегда пропускает то, что разделяет, поэтому приведенный выше код теряет == и! = из вашего примера. (Код Monoceres работает отлично.)
Но по какой-то причине, если вы заключите разделенное выражение в регулярное выражение в скобках, оно сохранит эту вещь в массиве ответов, а не просто разделит ее. Я не знаю, является ли это ошибкой, особенностью или каким-то умным дизайном, который я не оценил должным образом.
Так что на самом деле вам нужно:
s.split( /\s|(==)|(!=)/ )
Но это вряд ли код, который объясняет сам себя. И насколько я знаю, это не работает в 1.9.