正規表現で電話番号を取得してみよう

Rubyに限らず使われる正規表現ですが

今回は電話番号を取得する方法についてご紹介いたします。

 

ポイントは以下のとおりです。

  • 数字は\dで指定する
  • 数字の桁数の取得は、\d{ x , x }でx桁からx桁まで指定
  • 電話番号のハイフン または カッコ は[ ]で指定

 

上記を踏まえサンプルコードが以下です。

</pre>
text = <<EOS
番号:090-1234-1234
番号:1111-3333-2222
番号:08-123-1111
番号:080(1234)1234
EOS

# 数字3桁 - 数字4桁 - 数字4桁
p text.scan(/\d\d\d-\d\d\d\d-\d\d\d\d/)
# => ["090-1234-1234", "111-3333-2222"]

# 数字2-4桁 - 数字3-4桁 - 数字4桁
# 桁数の幅は {x, x} で対応
p text.scan(/\d{2,4}-\d{3,4}-\d{4}/)
# => ["090-1234-1234", "1111-3333-2222", "08-123-1111"]

# 数字2-4桁 - or ( 数字3-4桁 - or ) 数字4桁
# 桁数の幅は {x, x} で対応
# ハイフン または カッコ は [-(] or [-)] で対応
p text.scan(/\d{2,4}[-(]\d{3,4}[-)]\d{4}/)
# => ["090-1234-1234", "1111-3333-2222", "08-123-1111", "080(1234)1234"]
<pre>

初め正規表現は苦手意識がある方もいるかと思いますが少しずつ整理して覚えていきましょう(*^^*)

何か参考になると幸いです(*^^*)