Мне нужно удалить все специальные символы в конце строки, которые иногда будут там, а иногда нет.
Я написал это .gsub(/[,()'"]./,''), но оно не удаляет . (полный стоп) из строки.
.gsub(/[,()'"]./,'')
.
Можете ли вы сказать мне, что не так в этом?
Это должно быть .gsub?
.gsub
Строка # delete_suffix может быть проще.
my_string.delete_suffix '.'
Вы можете использовать
.gsub(/[,()'".]+\z/,'')
Точка должна быть помещена в класс символов, класс отрицанных символов должен быть количественно определен с помощью + (1 или более вхождений), и должен быть добавлен якорь \z, чтобы утверждать позицию в конце строки.
+
\z
См. Rubular demo .