Я пытаюсь форматировать номера телефонов в большом CSV-каталоге. Мне нужно будет повторно форматировать это периодически, поскольку оно изменяется, поэтому это не одноразовое решение. Я использовал функцию замены регулярных выражений Notepad ++ в прошлом и хотел бы использовать этот инструмент, если это возможно. Тем не менее, я открыт для лучших/быстрых методов, включая скрипты вроде PowerShell, с которыми я знаком.Использование Notepad ++ Regex для форматирования телефонных номеров
Пример форматов номеров в базе данных:
XXXXXXX
XXXXXXX
XXXXXXXXXX
1XXXXXXXXXX
(XXX) XXXXXXX
1 (XXX) XXXXXXX
(1XXX) XXX-XXXX
XXX-XXX-XXXX
Это последнее, что я хочу, чтобы все pho ne, чтобы они выглядели в конечном выпуске. Для тех, у кого отсутствует код области, я бы добавил значение по умолчанию. Для тех, у кого есть дополнительные коды стран, мне нужно будет усечь его.
Вот некоторые из регулярных выражений поиска, которые я использовал:
FIND: 1-(\d{3})-(\d{3})-(\d{4})
ЗАМЕНА: \ 1 \ 2 \ 3
Это работает!
FIND: 1\((\d{3})\)\s(\d{3})-(\d{4})
ЗАМЕНА: \ 1 \ 2 \ 3
Это работает!
НАЙТИ: (\d{11})
REPLACE: ???
Это находит правильную строку, но я не знаю, как отформатировать вывод.
FIND: (\d{3})-(\d{4})
ЗАМЕНА: xxx- \ 1 \ 2 (здесь XXX мой стандартный код города, который я добавлю)
Это находит правильную подстроку в XXX-XXX-XXXX, а также xxx- XXXX и почтовые индексы с добавлением +4 (XXXXX-XXXX). Вам нужно просто найти XXX-XXXX без чего-либо предшествующего ему и только с телефонных номеров. Поскольку это CSV-файл, фактический символ перед каждым полем является запятой.
Моя проблема двоякая. 1) Я не знаю, как разбить найденную строку на части, которые мне нужны для замены. Мне нужно преобразовать блоки цифр (7, 10 и 11 цифр) и отформатировать их в соответствии с шаблоном XXX-XXX-XXXX. 2) Я не знаю, как выбрать только строку, которую я ищу (т.е. только XXX-XXXX)