Ruby Regex gsub, когда не совпадает
Вопрос
Я хочу GSUB все символы в строке, которая не является буквами и заменить на «#». Я думаю, что мне нужно регулярное выражение, которое происходит что -то вроде: «GSUB (), когда эта регуляция не совпадает».
Любые идеи?
Решение
Смотри, ма, нет, не зарегистрировано ...
str.tr( '^A-Za-z', '#' )
Другие советы
str.gsub(/[^a-zA-Z]/, '#')
А ^ означает не совпадает
Конечно, вы можете использовать отрицание класса символов:
"aBc$%^".gsub(/[^A-Za-z]/, '#') => "aBc###"
Пытаться это на кодепаде:
puts "kjhdfuy37685682#$$%@dfjahf".gsub(/[^a-z]/i, '#')
Слова Считаться
все персонаж с ... заменить '#' str.gsub(/[^a-zA-Z]+/, '#')
каждый персонаж ... заменить на '#' str.gsub(/[^a-zA-Z]/, '#')
Не связан с StackOverflow