電話番号は国内の固定電話番号は10ケタ、携帯電話の電話番号は11ケタと定められています。しかしながら表記は慣例というのみで明確な定義がありません。***-****-****や***-***-****や(****)**-****などはよく見ます。これらや区切りなしに対応していれば大体カバーできますが、やっかいなのが企業等の広告用電話番号です。お客さんに覚えてもらうために彼らは語呂合わせなどで電話番号を自由に区切って表記します。こういった番号が対象に含まれる電話番号認識が必要となった場合、一つ一つのケースに対応はとてもしてられません。慣例で表記される()-を無視して仕様中にある数の数を数える正規表現で電話番号を認識しましょう。?によるあってもなくてもいい、が有効です。
雑なパターン:(?:\d[\(\)-]?){10,11}
いくらか丁寧なパターン:\((?:\d\)?-?\(?){10,11}