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

时间:2012-01-31 06:46:32

标签: ruby

我必须检查一个4个字符的字符串是否都是有效的十六进制,我发现了另一个问题,它确切地说明了我想做什么,但它是Java:Regex to check string contains only Hex characters

我该如何做到这一点?

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

3 个答案:

答案 0 :(得分:20)

在ruby regex \ h匹配十六进制数字,\ H匹配非十六进制数字。

所以 !str[/\H/]是您正在寻找的。

答案 1 :(得分:5)

if str =~ /^[0-9A-F]+$/

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

str =~ /^[0-9A-F]+$/i

答案 2 :(得分:1)

pattern = /^[[:xdigit:]]+$/

然后检查:

if  pattern === your_string
if /^[[:xdigit:]]+$/ === your_string

或带有

if your_string.match?(/^[[:xdigit:]]+$/)