Ruby,检查字符串是否都是有效的十六进制字符?

JP *_*shy 9 ruby

我必须检查一个4字符的字符串是否都是有效的十六进制,我发现另一个问题,它确切地说明我想要做什么,但它是Java:检查字符串只包含十六进制字符的正则表达式

我怎么能做到这一点?

我阅读了正则表达式的ruby文档,但是我不明白如何基于这个匹配返回true或false?

pgu*_*rio 20

在ruby中,正则表达式\ h匹配十六进制数字,\ H匹配非十六进制数字.

那 !str[/\H/]就是你要找的东西.


Jak*_*mpl 5

if str =~ /^[0-9A-F]+$/
Run Code Online (Sandbox Code Playgroud)

诀窍.如果你想要不区分大小写,那么:

str =~ /^[0-9A-F]+$/i
Run Code Online (Sandbox Code Playgroud)

  • @JosephSilvashy,你也可以这样做:`/ ^ [0-9A-F] $/i === str`.[Regexp#===](http://ruby-doc.org/core-1.9.3/Regexp.html#method-i-3D-3D-3D)表达式始终返回true为false. (2认同)