Как заменить строку в списке телефонных номеров в Python? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть эти номера телефонов в списке:

+61 2 3456 2718
03 2756 2876
4567 8937 
+61 5 6573 8593
05 8583 7932

Я хочу удалить первую цифру, если 0, и поставить +61 в каждом номере.Как я могу это сделать?

import re 
for i in phone:
    print(re.sub(r"(\+?\d{3})(\d{4})(\d+)", r"\1 \2 \3", i))
    re.sub('^\d+', '', i)

Ответы [ 4 ]

1 голос
/ 15 мая 2019

Если все телефонные номера начинаются с 0 или с каким-либо международным кодом, например +61 (или другим международным кодом), и вам не нужны никакие другие проверки, ваш код может быть настолько простым (и разборчивым), как:

fixed_phone_numbers = [f'+61{n[1:]}' if n[0] == '0' else n for n in phone_numbers]

Если по какой-то причине вы захотите сделать это в Python 2:

fixed_phone_numbers = ['+61' + n[1:] if n[0] == '0' else n for n in phone_numbers]
0 голосов
/ 15 мая 2019

Надеюсь, это поможет :-).Я использовал просто регулярное выражение для этого

In [1]: strings = """+61 2 3456 2718
   ...: 03 2756 2876
   ...: 4567 8937 
   ...: +61 5 6573 8593
   ...: 05 8583 7932"""
In [3]: import re

In [12]: for phoneno in strings.split('\n'):
    ...:     print(re.sub(r'^(0|\+61|)',r'+61',phoneno))
    ...:     
    ...:     

+61 2 3456 2718
+613 2756 2876
+614567 8937 
+61 5 6573 8593
+615 8583 7932
0 голосов
/ 15 мая 2019

Вы можете проверить первый символ. Если это '0', то замените строку на "+61" + "substring_of_phone_number_from_position_1" (i [1:]).

import re 
for i in phone:
    if i[0]=='0':
        i='+61'+i[1:]
    elif i[0]!='+':
        i='+61'+i
0 голосов
/ 15 мая 2019
phone = ["+61 2 3456 2718",
"03 2756 2876",
"4567 8937 ",
"+61 5 6573 8593",
"05 8583 7932"]
import re 
for i in phone:
    if(not i.startswith('+61')):
      if(re.match(r'^0', i)):
        i = re.sub('^0', '+61', i)
      else:
        i = '+61 ' + i
    print(i)

+61 2 3456 2718
+613 2756 2876
+61 4567 8937
+61 5 6573 8593
+615 8583 7932
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...