Eu tenho uma string:
s = ".,-2gg,,,-2gg,-2gg,,,-2gg,,,,,,,,t,-2gg,,,,,,-2gg,t,,-1gtt,,,,,,,,,-1gt,-3ggg"
e uma expressão regular que estou usando
import re
delre = re.compile('-[0-9]+[ACGTNacgtn]+') #this is almost correct
print (delre.findall(s))
Isso retorna:
['-2gg', '-2gg', '-2gg', '-2gg', '-2gg', '-2gg', '-1gtt', '-1gt', '-3ggg']
Mas -1gtt
e -1gt
não são correspondências desejadas. O número inteiro, neste caso, define quantos caracteres subsequentes corresponderão, portanto, a saída desejada para essas duas correspondências seria -1g
e -1g
, respectivamente.
Existe uma maneira de capturar o número inteiro após o traço e definir dinamicamente o regex para que ele corresponda a esse número e apenas a esse número de caracteres subsequentes?