стандартизировать международный телефон код с использованием только регулярных выражений - PullRequest
2 голосов
/ 21 марта 2010

Sipdroid на Android имеет метод поиска и замены, который использует регулярные выражения.Я пытаюсь использовать его, чтобы убедиться, что все исходящие вызовы имеют код страны в формате 00XX

. Я также хочу, чтобы он ставил 0045 перед номером, если код страны отсутствует.

Первый, я решил, но не могу понять, как сделать второе.

Поиск :

\A(((\+)(\d{2})?)|(00(\d{2})?)|)((\d|\s)+)\Z

Замените :

00$4$6$7

Я использую http://www.regexplanet.com/simple/index.html, чтобы проверить его, с тестовыми строками: "12345678", "+4512345678" и "004512345678" Они должны все вернуться"004512345678".

1 Ответ

3 голосов
/ 21 марта 2010

Вы должны знать, что коды стран могут иметь длину от 3 до 4 цифр.

Подробнее см. Список кодов вызова *1004*.

Заменавы после достаточно контекстно-зависимы, поэтому я думаю, что это невозможно решить с помощью одного регулярного выражения (достаточно простым способом, чтобы сделать его действительно применимым).Опять же, я не гуру регулярных выражений.

...