Рубин: шестнадцатеричный в регулярных выражениях - PullRequest
9 голосов
/ 12 июля 2011

Мне нужно сопоставить контрольную сумму md5 в регулярном выражении в программе на Ruby (фактически Rails). Где-то я обнаружил, что могу сопоставить шестнадцатеричные строки с последовательностью \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 помечает это выражение как неправильное, и я не могу найти ссылку на эту последовательность.

Допустима ли последовательность \h в Ruby Regex в любой среде / версии, или я должен доверять своему идею и заменить его чем-то вроде [abcdef\d]?

Ответы [ 2 ]

11 голосов
/ 12 июля 2011

Да, это так.Проверьте официальный документ для получения полной документации по регулярным выражениям в Ruby.

Обратите внимание, что \h также будет соответствовать заглавным буквам, так что на самом деле это эквивалентно [a-fA-F\d]

4 голосов
/ 12 июля 2011

Согласно это \ h является частью онигурума, который, я считаю, является стандартным в рубине 1.9.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...