2012-01-31 6 views
7

я должен проверить, если строка 4 символов все шестнадцатеричной, я нашел еще один вопрос, который демонстрирует именно то, что я хочу сделать, но это Java: Regex to check string contains only Hex charactersRuby, проверьте, действительно ли строка содержит шестнадцатеричные символы?

Как я могу это сделать?

Я читал рубиновые документы для регулярных выражений, но я не понимаю, как вернуть true или false на основе этого совпадения?

ответ

19

В рубине регулярного выражения \ ч соответствует шестнадцатеричному числу и \ H совпадает с не-шестнадцатеричной цифрой.

So !str[/\H/] - это то, что вы ищете.

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

делает трюк. Если вы хотите, нечувствительны к регистру, то:

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

Это возвращает 'nil', когда я его оцениваю против" f0a1 " –

+0

Зависит от того, хотите ли вы, чтобы он чувствителен к регистру. –

+0

, но я смущен, потому что тогда он либо возвращает '0', либо' nil', есть ли способ посмотреть, совпадает ли он? –

Смежные вопросы