Надо знать специфику ваших данных.
Гипотеза: все номера можно правильно понять лишь по числу цифр в них:
+7 (495) 555-55-55
555-5555
8-495-5555555
(495) 555 55 55
Это всё один и тот же номер. Чтобы его правильно вывести, надо:
- отбросить все знаки, кроме цифр;
- отбросить, при наличии, "8" в начале при числе цифр = 11;
- дописать в начале +7 (495) при необходимости;
Постройте код с такой гипотезой и посмотрите, какие номера не вписались в неё и почему. Скорректируйте гипотезу, снова прогоните все данные.
Заметил, что у вас может быть несколько номеров в одной строке, с префиксом указанным лишь перед первым. Тогда нужно сначала ещё отладить этап, приводящий телефоны к формату один-номер-на-в-строке. Запоминать префикс, запятая – разделитель строк.
Муторно, но только так.