5

我想 gsub 字符串中不是字母的所有字符并替换为'#'。我想我需要一个类似于“当这个正则表达式不匹配时的 gsub()”的正则表达式。

有任何想法吗?

4

5 回答 5

16

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

str.tr( '^A-Za-z', '#' )
于 2011-01-17T17:10:41.713 回答
9
str.gsub(/[^a-zA-Z]/, '#')

^表示不匹配

于 2011-01-17T16:29:19.623 回答
4

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

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

于 2011-01-17T16:30:22.530 回答
2

在键盘上试试这个:

puts "kjhdfuy37685682#$$%@dfjahf".gsub(/[^a-z]/i, '#')
于 2011-01-17T16:33:15.617 回答
1

字数很重要

所有字符s ... 替换为 '#'str.gsub(/[^a-zA-Z]+/, '#')

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

于 2011-01-17T16:41:52.817 回答