Это работает для меня в IRB
arr.map { |l| l.gsub(/^'|'$|%&/, '') }
Обратите внимание, что это не будет изменять оригинальный способ. Чтобы разрушить массив, вам нужно будет использовать метод bang
, в данном случае arr.map!
.
Вот простое объяснение.
В регулярном выражении мы ищем совпадения, которые начинаются или заканчиваются апострофом или содержат два специальных символа в третьем элементе.
Символ ^
используется для обозначения того, что линия начинается с определенной подстроки. С другой стороны, символ $
используется для указания строки, заканчивающейся определенной подстрокой. Оператор |
распространен в области компьютерных наук для обозначения or
условного.
Однако, если у вас есть строка, которая охватывает несколько строк, вам следует рассмотреть выражения \A
и \z
, чтобы указать начало и конец строки.
Мой выход в IRB следующим
=> ["don't", "stop", "streaming"]
Может у вас есть строка, '" „не“ или „„не““ 'или это всегда только одно слово с тремя одинарными кавычками/апострофами? Если этот символ появляется между двумя буквами это обязательно апостроф (должен быть сохранен)? –