(更新:这个问题的主要焦点是测试"别的"部分)
给定一个字符串s,它可以包含任何内容,Ruby中最正确的正则表达式是什么,以检查它是否是单个数字而没有别的?(单个数字,只有一个数字).
使用 /\A\d\z/
irb(main):001:0> "asd\n7\n" =~ /\A\d\Z/
=> nil # works as false
irb(main):002:0> "asd\n7\n" =~ /\A\d\z/
=> nil # works as false
irb(main):083:0> "7\n"=~/\A\d\Z/
=> 0 # \Z fails, need \z
irb(main):084:0> "7\n"=~/\A\d\z/
=> nil # works as false
irb(main):005:0> "7" =~ /\A\d\Z/
=> 0 # works as true
irb(main):006:0> "7" =~ /\A\d\z/
=> 0 # works as true
Run Code Online (Sandbox Code Playgroud)
http://www.zenspider.com/Languages/Ruby/QuickRef.html:
\z end of a string \Z end of a string, or before newline at the end