1

文字列があり、"" X "" 2 つの括弧の間にある 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] の位置を選択できないため、1 桁/2 桁の数値のいずれかになる可能性があるため、出力を 2 つの間の値にしたい

別の方法で明確にする必要がある場合はお知らせください

4

3 に答える 3

3

かっこを移動するだけです

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

ただし、2桁をキャッチしたい場合は、次のように変更できます

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

編集:明確にするために、括弧の各セットは後でアクセスできるグループになり、\d+1つ以上の数字に一致することを意味します

于 2013-06-05T21:32:29.437 に答える
1
temp_ID.append((re.search(r'exon_number\s""(\d)""',k).group(1)))

http://docs.python.org/2/howto/regex.html#grouping

于 2013-06-05T21:21:10.513 に答える
0

後読みを使用できます。

temp_ID.append((re.search(r'(?<=exon_number\s"")\d{1,2}',k).group(0)))

後読みは文字を食べません。試合で文字を取得しません。

于 2013-06-05T21:18:15.313 に答える