2013-06-05 4 views
1

У меня есть строка, и я хочу, чтобы извлечь exon_number, который между ними «» X «» два круглых скобкахИзвлечь цифры после появления?

Я использую 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'] 

Я хочу выход только быть значение между ними двумя " " , потому что это может быть либо одна цифра/двузначный номер, так что я не могу се Lect в [-3] положение

дайте мне знать, если мне нужно уточнить какой-либо иначе

ответ

3

Вам просто нужно, чтобы переместить ваш скобка

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))) 

Edit: Для того, чтобы уточните, каждый набор парнеров будет группой, к которой вы можете получить доступ позже, и \d+ означает, что wi ll соответствует 1 или более цифрам

+0

спасибо большое! я ценю это. имеет смысл сейчас –

0

Вы можете использовать: 'назад

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

просмотром назад не есть символы, не получить их в матче.

Смежные вопросы