检查字符串是否只有“0”和“1”

时间:2015-09-12 06:57:18

标签: ruby regex

我应该得到一个字符串,并确保它代表一个二进制数字,如"101011"

This question处理十六进制字符串,但我不知道如何在语句H中替换正则表达式中的字母!str[/\H/]。你能帮帮我吗?

3 个答案:

答案 0 :(得分:3)

使用正则表达式的直接方法是:

"101011" !~ /[^01]/

答案 1 :(得分:2)

使用String方法的四种方式:

str1 = '100100110'
str2 = '100100210'

<强> String#delete

str1.delete('01') == '' #=> true
str2.delete('01') == '' #=> false

<强> String#tr

str1.tr('01','') == '' #=> true
str2.tr('01','') == '' #=> false

<强> String#gsub

str1.gsub(/[01]/,'') == '' #=> true
str2.gsub(/[01]/,'') == '' #=> false

<强> String#count

str1.count('01') == str1.size #=> true
str2.count('01') == str2.size #=> false

答案 2 :(得分:0)

以下是执行此操作的一种方法:

"101011".chars.all? {|x| x =~ /[01]/} # true if binary, else false