我想从字符串中删除所有非数字字符。
/\D/
是一个非数字字符([^0-9]
):
irb(main):010:0> s = "(123) 456-7890"
=> "(123) 456-7890"
irb(main):011:0> s.sub( /\D*/, '' )
=> "123) 456-7890"
答案 0 :(得分:5)
使用String#tr
或String#gsub
执行以下操作:
s.gsub(/[[:punct:]]|[[:space:]]/ ,'')
# => "1234567890"
s.tr('^0-9','') # even more faster
# => "1234567890"
答案 1 :(得分:3)
sub
取代一次。 gsub
取代所有。
答案 2 :(得分:2)
改用gsub:
s.gsub( /\D/, '' )