😽

Rubyで正規表現を勉強する

1 min read

rubyのscanメソッドで正規表現を確かめる。
メモりたいものが増えたら随時追加する。

\d

半角数字。

hoge = '電話番号は080-4343-3434です。'
hoge.scan(/\d\d\d-\d\d\d\d-\d\d\d/)
# 実行結果
=> ["080-4343-343"]

{n}, {n, m}

量指定子。
{n} => n個。
{n, m} => n~m個。

hoge = "電話番号:080-8484-3434, 09-9433-4398, 0566-43-3434"
hoge.scan(/\d{2,4}-\d{2,4}-\d{4}/)
# 実行結果
=> ["080-8484-3434", "09-9433-4398", "0566-43-3434"]

[AB]

AまたはB。

hoge = "電話番号:080-8484-3434, 09(9433)4398, 0566-43-3434"
hoge.scan(/\d{2,4}[-(]\d{2,4}[-)]\d{4}/)
# 実行結果
=> ["080-8484-3434", "09(9433)4398", "0566-43-3434"]

[a-z]

a~zの文字。[]内での-は範囲を示す。
-を表したいときは前後に置くと良い。
例)[-az]

hoge = 'a0b1c2d3'
hoge.scan(/[a-z]/)
# 実行結果
=> ["a", "b", "c", "d"]

[AB]?

AまたはB、もしくは無し。

hoge = "電話番号:080-8484-3434, 09(9433)4398, 0566-43-3434"
hoge.scan(/\d{2,4}[-(]?\d{2,4}[-)]?\d{4})
# 実行結果
=> ["080-8484-3434", "09(9433)4398", "0566433434"]

.

任意の一文字。(なんでも)

hoge = "電話番号:080-8484-3434, 09(9433)4398, 0566-43-3434"
hoge.scan(/\d{2,4}.?\d{2,4}.?\d{4}/)
# 実行結果
=> ["080-8484-3434", "09(9433)4398", "0566433434"]

Discussion

ログインするとコメントできます