のは、私は次の配列を持っているとしましょう:私は配列は任意の数字以外の記号が含まれている場合にはfalseを返したい配列、このような状況をどのように処理するのですか?
arr = ["", "2121", "8", "myString"]
。
のは、私は次の配列を持っているとしましょう:私は配列は任意の数字以外の記号が含まれている場合にはfalseを返したい配列、このような状況をどのように処理するのですか?
arr = ["", "2121", "8", "myString"]
。
:
def contains_non_digit(array)
!array.select {|s| s =~ /^.*[^0-9].*$/}.empty?
end
説明:これは、一致するすべての文字列の配列をフィルタリングし、それがある場合(DarkDustごとに)以下のように、行を書き換えする必要があります正規表現。この正規表現は、少なくとも1つの非数字文字を含む文字列に当てはまります。結果の配列が空の場合、配列には数字以外の文字列は含まれません。最後に、配列にはに数字以外の文字列が含まれていることを知りたいので、結果を否定する必要があります。
arr.all? { |s| s =~ /^\d+$/ }
それは桁(\d
)のみから構成される場合は、各要素をチェックします - それらのいずれかがない場合は、falseが返されます。
編集:空の文字列が有効かどうかは完全には指定していません。空の文字列が許可されている場合
arr.all? {|s| s =~ /^\d*$/ }
+1、「すべて」について知りませんでした。しかし、もし空の文字列が許されていれば、 's =〜/^\ d * $ /'の代わりに使うだけです。 – DarkDust
十分です。 :) –
同じですが、他の方法: 'arr.any? {| s | –