Добавление +1 к строке цифр с помощью re.sub - PullRequest
1 голос
/ 22 апреля 2020

Как использовать метод re.sub python для добавления +1 к номеру телефона?

Когда я использую следующую функцию, она меняет эту строку «802-867-5309» на эту строку «+ 1 + 15309». Я пытаюсь получить эту строку "+ 1-802-867-5309". Примеры в замене документов показывают, как заменить всю строку. Я не хочу заменять всю строку, просто добавьте + 1

import re
def transform_record(record):
  new_record = re.sub("[0-9]+-","+1", record)
  return new_record

print(transform_record("Some sample text 802-867-5309 some more sample text here"))

1 Ответ

2 голосов
/ 22 апреля 2020

Если вы можете сопоставить свои номера телефонов с шаблоном, вы можете обратиться к значению совпадения, используя \g<0> обратную ссылку в замене.

Итак, выбираем самый простой шаблон, такой как \d+-\d+-\d+, который соответствует вашему номеру телефона. , вы можете использовать

new_record = re.sub(r"\d+-\d+-\d+", r"+1-\g<0>", record)

См. демонстрационную версию regex . Другие идеи о том, как сопоставить номера телефонов, см. В Поиск телефонных номеров в python script .

См. Демонстрационную версию Python :

import re
def transform_record(record):
  new_record = re.sub(r"\d+-\d+-\d+", r"+1-\g<0>", record)
  return new_record

print(transform_record("Some sample text 802-867-5309 some more sample text here"))
# => Some sample text +1-802-867-5309 some more sample text here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...