時として荒れた作業が必要になることもありますw 一般的な法則(アルゴリズム)があるのかと思ったらどうもないようだ。 という訳で総務省のデータを活用すればそれっぽく動くものは出来た。 漏れがあると思うので気づいた方は教えて下さいm(_ _)m require 'pp' require 'tel_splitter' pp TelSplitter.split("0688889999") > ["06", "8888", "9999"] # encoding: utf-8 module TelSplitter MAP = { # 市外局番 , 市内局番の桁数のマップ # http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/number_shitei.html のデータを利用 # 固定電話以外の桁数は適当です... '050'