出现后提取数字字符?

我有一个字符串,我想提取在““ 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 string


temp_ID.append((re.search(r'(exon_number\s""\d"")',k).group(1)))


print temp_ID


>['exon_number ""2""']



desired_output = ['2']

我希望输出只是两者之间的值," " 因为它可以是一位数字/两位数字,所以我不能选择[-3]位置


让我知道是否需要其他说明


眼眸繁星
浏览 155回答 3
3回答

慕勒3428872

您只需要移动括号即可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个或多个数字

拉丁的传说

您可以在后面使用:temp_ID.append((re.search(r'(?<=exon_number\s"")\d{1,2}',k).group(0)))往后看不要吃字符,您不会在比赛中找到它们。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python