Ruby:正则表达式中的十六进制

标签 ruby regex hex

我需要在 Ruby(实际上是 Rails)程序的正则表达式中匹配 md5 校验和。我在某处发现我可以将十六进制字符串与 \h 序列匹配,但我找不到链接了。

我正在使用该序列并且我的代码在 Ruby 1.9.2 中运行。我什至可以让它在普通 IRB 下工作(因此它不是 Rails 扩展)。

ruby-1.9.2-p180 :007 > "123abcdf" =~ /^\h+$/; $~
 => #<MatchData "123abcdf"> 
ruby-1.9.2-p180 :008 > "123abcdfg" =~ /^\h+$/; $~
 => nil 

但是我的 IDE 将该表达式标记为错误,我找不到任何引用该序列的引用。

在任何环境/版本下,Ruby Regex 中的 \h 序列是否合法,或者我应该相信我的想法并将其替换为 [abcdef\d] 之类的东西吗?

最佳答案

是的。检查the official doc获取 Ruby 中正则表达式的完整文档。

注意 \h 也会匹配大写字母,所以它实际上等同于 [a-fA-F\d]

关于Ruby:正则表达式中的十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657389/

相关文章:

ruby - 如何对二维数组求和

c - 虚拟机的推送指令损坏

c - 如何从 int 变量(存储在 int 变量中的十六进制值)中提取字节?

c# - 将 32 位十六进制数转换为长整数的问题

mysql - 让 Ruby 和 MySQL 协同工作

ruby - 根据多个值对哈希数组进行排序

ruby-on-rails - 使用 Google API 客户端,如何创建客户端

java - 在 Java 字符串中添加带有双黑斜杠 [\\] 的特殊字符

javascript - 如何使用 javascript 或 jquery 计算文本框中逗号的数量?

Java 正则表达式 : match multiple word boundaries