Dav*_*ave 0 ruby regex string numbers
我正在使用Ruby 2.4.如何检查字符串是否包含任何数字?我正在尝试这个
2.4.0 :002 > line = "abcdef"
=> "abcdef"
2.4.0 :007 > line =~ /^^[0-9]+$/
=> nil
Run Code Online (Sandbox Code Playgroud)
我认为"^"是"非"字符,但我不确定它是如何工作的,因为我知道它也是短语起始字符.无论如何,感谢帮助, -
^ 在方括号列表的开头处否定一组字符:
[^abc] # not a, b, or c
Run Code Online (Sandbox Code Playgroud)
所以你只需要在括号内移动它:
line =~ /^[^0-9]+$/
Run Code Online (Sandbox Code Playgroud)
请注意,您可能需要\A而\z不是^和$,因为它们匹配整个字符串的开头和结尾而不是行,这\D是简短的[^0-9].
line =~ /\A\D+\z/
Run Code Online (Sandbox Code Playgroud)
您也可以对数字进行否定检查.
line !~ /\d/
Run Code Online (Sandbox Code Playgroud)