我有一个字符串:
s = ".,-2gg,,,-2gg,-2gg,,,-2gg,,,,,,,,t,-2gg,,,,,,-2gg,t,,-1gtt,,,,,,,,,-1gt,-3ggg"
以及我使用的正则表达式
import re
delre = re.compile('-[0-9]+[ACGTNacgtn]+') #this is almost correct
print (delre.findall(s))
返回:
['-2gg', '-2gg', '-2gg', '-2gg', '-2gg', '-2gg', '-1gtt', '-1gt', '-3ggg']
但-1gtt
和-1gt
并不是所需的匹配。在这种情况下,整数定义要匹配多少个后续字符,因此这两个匹配的所需输出分别为-1g
和-1g
。
有没有办法抓取破折号后的整数并动态定义正则表达式,以便它匹配那么多且只匹配那么多后续字符?