Как переформатировать буквенно-цифровую строку только для конкретного числового символа в Python? - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть

var = BRES [8] BRES [9] BRES [10] BRES [11] BRES [12]

с

variable = re.sub(r'[0-9]+', r'[0\g<0>]', vari)

я получаю

переменная = BRES [08] BRES [09] BRES [010] BRES [011] BRES [012]

Но яхотел бы иметь

variable = bRes [08] bRes [09] bRes [10] bRes [11] bRes [12]

любое предложение?

1 Ответ

0 голосов
/ 07 февраля 2019

Вы можете использовать

import re
vari = 'bRes[8] bRes[9] bRes[10] bRes[11] bRes[12]'
print(re.sub(r'\[([0-9]+)]', lambda x: "[{}]".format(x.group(1).zfill(2)), vari))
# => bRes[08] bRes[09] bRes[10] bRes[11] bRes[12]

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

Шаблон \[([0-9]+)] соответствует [, затем записывает одну или несколько цифр в группу1, а затем соответствует ], соответствие передается лямбда-выражению как x, а подстроки цифр, хранящиеся в группе 1, обрабатываются с помощью .zfill(2) для дополнения однозначных чисел нулем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...