Я думаю, что лучше подумать об этом наоборот (в основном белый список вместо черного списка). Если вы знаете слово, которое хотите сохранить, вы можете сделать это:
irb(main):001:0> html = 'class="frozen repository-content-2 repository-content interface">'
=> "class=\"frozen repository-content-2 repository-content interface\">"
irb(main):002:0> html.gsub(/class=".*?(repository-content(?=[\s"])).*?"/, 'class="\1"')
=> "class=\"repository-content\">"
irb(main):003:0>
Поэтому идея состоит в том, чтобы сохранить слово, которое вы хотите, и удалить окружающие (запрещенные) слова.
.*? this is to match 0 or more characters (non-greedy)
\1 is to keep the word you want inside the class="..."