我有一个字符串,我想提取在““ X ”“两个括号之间的exon_number我使用re.search查找'exon_number'的出现,但我不想在最终输出中包括字符串exon_number例子:temp_ID = []k = '"gene_id ""XLOC_000001""; transcript_id ""TCONS_00000001""; exon_number ""1""; oId ""CUFF.17.1""; tss_id ""TSS1"";"'#input stringtemp_ID.append((re.search(r'(exon_number\s""\d"")',k).group(1)))print temp_ID>['exon_number ""2""']desired_output = ['2']我希望输出只是两者之间的值," " 因为它可以是一位数字/两位数字,所以我不能选择[-3]位置让我知道是否需要其他说明
3 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
您只需要移动括号即可
temp_ID.append((re.search(r'exon_number\s""(\d)""',k).group(1)))
但是,如果您想捕获两位数,可以将其更改为
temp_ID.append((re.search(r'exon_number\s""(\d+)""',k).group(1)))
编辑:为澄清起见,每组括号将是您以后可以访问的一组,\d+
这意味着它将匹配1个或多个数字
拉丁的传说
TA贡献1789条经验 获得超8个赞
您可以在后面使用:
temp_ID.append((re.search(r'(?<=exon_number\s"")\d{1,2}',k).group(0)))
往后看不要吃字符,您不会在比赛中找到它们。
添加回答
举报
0/150
提交
取消