我正在使用Ruby 2.4。如何检查字符串是否包含任何数字?我正在尝试这个
2.4.0 :002 > line = "abcdef"
=> "abcdef"
2.4.0 :007 > line =~ /^^[0-9]+$/
=> nil
我认为“^”是“非”字符,但我不确定它是如何工作的,因为我知道它也是短语起始字符。无论如何,感谢帮助, -
答案 0 :(得分:5)
^
在方括号列表的开头处否定一组字符:
[^abc] # not a, b, or c
所以你只需要在括号内移动它:
line =~ /^[^0-9]+$/
请注意,您可能需要\A
和\z
而不是^
和$
,因为它们匹配整个字符串的开头和结尾而不是行,并且{ {1}}是\D
的缩写。
[^0-9]
您也可以对数字进行否定检查。
line =~ /\A\D+\z/
答案 1 :(得分:2)
您可以像这样使用match?
:
'abcdef'.match?(/\d/)
#=> false