このシナリオがあるかどうかをどのように検出しますか、この入力を取得します
3b => allow
4b => allow
55b => allow
1111bbbb => allow
num45 => no !
与えられた場合は、数字以外のすべての文字も削除したいと思います
3b => 3
555B => 555
11 => 11
与えられた入力が数値であるかどうかを確認しようとしましたが、この条件は私の知識の範囲外です。
お手数をおかけしますが、よろしくお願いいたします。
このシナリオがあるかどうかをどのように検出しますか、この入力を取得します
3b => allow
4b => allow
55b => allow
1111bbbb => allow
num45 => no !
与えられた場合は、数字以外のすべての文字も削除したいと思います
3b => 3
555B => 555
11 => 11
与えられた入力が数値であるかどうかを確認しようとしましたが、この条件は私の知識の範囲外です。
お手数をおかけしますが、よろしくお願いいたします。
以下を使用できます。
/\A(\d+)[a-z]*\z/i
式が一致する場合、目的の番号は最初のキャプチャ グループに含まれます。
Rubularでの例。(デモンストレーションのためだけに / の代わりに / を使用します。 / を使用する必要^が$あり\Aます。)\z\A\z
これにより、整数 + 文字列が検索され、整数に変換されます。文字列 + 整数の入力は無視されます。
input = '45num'
if input.match(/\d+[a-zA-Z]+/)
result = input.to_i
end
result => 45
あなたは本当に使いたいです:str[/\A\d+/]-これはあなたに先頭の数字またはnilを与えます。
うーん、私は正規表現の忍者ではありませんが^([\d]+)、数字だけをキャプチャするために: を使用できると思います。ここで試してみてください
文字列が数字で始まる場合
!/^[0-9]/.match(@variable).nil?
もしそうなら、数字の部分だけを取得します
@variable = @variable.gsub(/[^0-9]/, '')