yuki8634
@yuki8634 (yuki kawakita)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

正規表現

解決したいこと

正規表現を用いて16桁のクレジットカード番号のうち末尾2桁を除いて*に置き換える
例)1234-5678-9012-3456 => ****-****-****-**56

試したいこと

gsubを使って末尾2桁を除いて数値\d*に置換するプログラムを実行したい
gsubでこれを表現できるのであればどのように表現するのか知りたい

わかっている答え

subを用いたプログラム

def hide_the_number(number)
  number.sub(/\d{4}-\d{4}-\d{4}-\d{2}/, "****-****-****-**")
end

card_number = "1234-5678-9012-3456"
puts hide_the_number(card_number)

gsubでできるのか?という好奇心があったのでご質問させていただきました。
お時間のある方ご教授いただきたいです。
よろしくお願いします。

0
number.gsub(/\d{4}-\d{4}-\d{4}-\d{2}/, "****-****-****-**")
number.gsub(/\d{2}(?!$)/, "**")
number.gsub(/\d{2}(?=.)/, "**")

色々やり方はあるとは思いますが、単純に1番上が早そうです。

2Like

Your answer might help someone💌