Ruby Regex Gsub, когда не совпадает - PullRequest
5 голосов
/ 17 января 2011

Я хочу добавить все символы в строку, которые не являются буквами, и заменить на '#'. Я думаю, что мне нужно регулярное выражение, которое выглядит примерно так: «gsub (), когда это регулярное выражение не совпадает».

Есть идеи?

Ответы [ 5 ]

14 голосов
/ 17 января 2011

Смотри, ма, без регулярных выражений ...

str.tr( '^A-Za-z', '#' )
9 голосов
/ 17 января 2011
str.gsub(/[^a-zA-Z]/, '#')

Значение ^ не соответствует

4 голосов
/ 17 января 2011

Конечно, вы можете использовать отрицание класса символов:

"aBc$%^".gsub(/[^A-Za-z]/, '#') => "aBc###"

1 голос
/ 17 января 2011

Слова сделать подсчет

все символ с ... заменить на '#' str.gsub(/[^a-zA-Z]+/, '#')

каждый символ ... заменить на '#' str.gsub(/[^a-zA-Z]/, '#')

1 голос
/ 17 января 2011

Попробуйте это на кодовой панели:

puts "kjhdfuy37685682#$$%@dfjahf".gsub(/[^a-z]/i, '#')
...