2011-01-17 113 views
4

我想gsub字符串中的所有字符,而不是字母,并用'#'替换。我想我需要一个正则表达式,就像“当这个正则表达式不匹配时的gsub()”。Ruby Regex Gsub当不匹配

任何想法?

回答

12

妈妈快看,没有正则表达式...

str.tr('^A-Za-z', '#') 
+0

+1音译 – sln

+0

非常好的解决方案。非常适合账单,谢谢。 – Mike

+2

'^ A-Za-z'完全是正则表达式:P – RGB

9
str.gsub(/[^a-zA-Z]/, '#') 

^手段不匹配

+0

谢谢! –

4

当然,你可以使用字符类的否定:

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

1

键盘背后尝试this

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

做算

所有字符小号 ...以 '#' str.gsub(/[^a-zA-Z]+/, '#')

每个字符替换...以 '#' 替换str.gsub(/[^a-zA-Z]/, '#')