Regex это именно то, что вы хотите.Это модуль re в Python, вам нужно использовать re.sub, и он будет выглядеть примерно так:
newstring = re.sub(r'\[\d+\]', replacement, yourstring)
Если вам нужно сделать много, подумайте о компиляции регулярного выражения:
myre = re.compile(r'\[\d+\]')
newstring = myre.sub(replacement, yourstring)
Редактировать: Чтобы повторно использовать число , используйте группу регулярных выражений:
newstring = re.sub(r'\[(\d+)\]',r'[mytext, \1]', yourstring)
Компиляция также возможна.