Можно ли использовать обратную ссылку, чтобы указать количество повторений в регулярном выражении?
foo = 'ADCKAL + 2AG. + 2AG. + 2AG. + 2AGGG + .G + 3AGGa.'
Подстроки, начинающиеся с '+ [0-9]', за которыми следует '[A-z] { n }.' необходимо заменить просто на «+», где переменная n - это цифра из подстроки. Может ли это n быть возвращено? Например (не работает) '+ ([0-9]) [A-z] {/ 1}.' это шаблон, который я хочу заменить на «+» (последняя точка может быть любым символом и представляет показатель качества), так что foo должен появиться в ADCKAL +++ G.G +.
import re
foo = 'ADCKAL+2AG.+2AG.+2AG.+2AGGG+.+G+3AGGa.'
indelpatt = re.compile('\+([0-9])')
while indelpatt.search(foo):
indelsize=int(indelpatt.search(foo).group(1))
new_regex = '\+%s[ACGTNacgtn]{%s}.' % (indelsize,indelsize)
newpatt=re.compile(new_regex)
foo = newpatt.sub("+", foo)
Возможно, мне не хватает более простого способа разбора строки.