在Ruby中,使用正则表达式匹配单个数字和**没有其他**的最正确方法是什么?

nop*_*ole 3 ruby regex

(更新:这个问题的主要焦点是测试"别的"部分)

给定一个字符串s,它可以包含任何内容,Ruby中最正确的正则表达式是什么,以检查它是否是单个数字而没有别的?(单个数字,只有一个数字).

Nak*_*lon 5

使用 /\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