我必须检查一个4个字符的字符串是否都是有效的十六进制,我发现了另一个问题,它确切地说明了我想做什么,但它是Java:Regex to check string contains only Hex characters
我该如何做到这一点?
我阅读了正则表达式的ruby文档,但我不明白如何基于这个匹配返回true或false?
答案 0 :(得分:20)
在ruby regex \ h匹配十六进制数字,\ H匹配非十六进制数字。
所以
!str[/\H/]
是您正在寻找的。 p>
答案 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:]]+$/)