我想 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, '#')
字数很重要
所有字符s ... 替换为 '#'str.gsub(/[^a-zA-Z]+/, '#')
每个字符...替换为“#”str.gsub(/[^a-zA-Z]/, '#')