簡體   English   中英

Ruby:正則表達式中的十六進制

[英]Ruby: hexadecimal in regular expressions

我需要在 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 正則表達式中的\h序列是否合法,或者我應該信任我的 ide 並將其替換為[abcdef\d]之類的東西嗎?

是的。 查看官方文檔以獲取 Ruby 中正則表達式的完整文檔。

注意\h也會匹配大寫字母,所以它實際上等同於[a-fA-F\d]

根據這個\h 是 oniguruma 的一部分,我相信這是 ruby 1.9 中的標准。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM