【Rubyメモ】末尾の数字を取得する、こんなやり方で取得できた。

IT/プログラミング

正規表現:末尾の数字だけ取得してみる!

\d:10進数の数字

{5}:5つの要素を探す

$:末尾にマッチ

matchしたものをto_sすると、
文字列として出力できます!

random_text = "あいうえおかきくけこ 12345"
p random_text.match(/\d{5}$/)
p random_text.match(/\d{5}$/).to_s

# result
#<MatchData "12345">
"12345"

{5}を{3}に変更してみると結果は?

matchのなかの正規表現の

{5}を{3}に変更すると以下になります!

random_text = "あいうえおかきくけこ 12345"
p random_text.match(/\d{3}$/)
p random_text.match(/\d{3}$/).to_s

# result
#<MatchData "345">
"345"


{3}を{7}に変更してみると結果は?

マッチしないということは
nilとなりますね!

randam_text = "あいうえおかきくけこ 12345"
p randam_text.match(/\d{7}$/)

# result
nil

マッチしたものを置換してみよう!

マッチしたものをgsubとか使うと

簡単に置換できて、いい感じですね!

random_text = "あいうえおかきくけこ 12345"
match_text = random_text.match(/\d{5}$/)
p random_text.gsub(match_text.to_s,"さしすせそ")

# result
"あいうえおかきくけこ さしすせそ"

gsubはgsub!にすると
破壊的になりました~

randam_text = "あいうえおかきくけこ 12345"
match_text = randam_text.match(/\d{5}$/)
p randam_text.gsub(match_text.to_s,"さしすせそ")
p randam_text
p randam_text.gsub!(match_text.to_s,"さしすせそ")
p randam_text

#result
"あいうえおかきくけこ さしすせそ"
"あいうえおかきくけこ 12345"
"あいうえおかきくけこ さしすせそ"
"あいうえおかきくけこ さしすせそ"

短縮してかいてみた。

randam_text = "あいうえおかきくけこ 12345"
p randam_text.gsub(randam_text.match(/\d{5}$/).to_s,"さしすせそ")
p randam_text
p randam_text.gsub!(randam_text.match(/\d{5}$/).to_s,"さしすせそ")
p randam_text

#result
"あいうえおかきくけこ さしすせそ"
"あいうえおかきくけこ 12345"
"あいうえおかきくけこ さしすせそ"
"あいうえおかきくけこ さしすせそ"

コメント

タイトルとURLをコピーしました