파일이 매우 형편 없지만 파싱 할 수 있고 필요한 값의 대부분을 추출 할 수 있습니다. 가변 길이 번호를 추출하는 방법을 배우는 방법을 알려주세요.파이썬에서 정규식을 사용하여 가변 길이 수를 추출하십시오.
다른 기능을 구문 분석하고 추출하려면 목록 인덱스를 '|', ''및 ':'과 같이 여러 가지 spliiters와 함께 사용했습니다. 그러나이 경우 나는 블록 (아래)에 도달 할 수 있으며 '_'주변의 숫자를 x와 y로 구분하여 각 행에 대해 추출해야합니다.
한 가지 방법은 처음에는 ':', '' ', 마지막으로'- '로 나눌 수 있지만 인덱스 위치 [0]과 [1]을 추출하지만 가장 효율적인 방법입니다 그래서.
chr5 : 17399789-17401949 REVERSE
chr5 : FORWARD 6414488-6415907
chr5 : FORWARD 2981156-2982709
chr5 : 6311725-6313323 REVERSE
chr5 : 12791432-12794551 REVERSE
chr5 : 927915-930781 앞쪽
chr5 : FORWARD 19585936-19587841
chr5 : 26894856-26896488 FORWARD
chr5 : 18138775-18142147 REVERSE
chr5 :
chr5 역방향 20537525-20538943 :
역방향 22496196-22500543chr5 : 4747860-4753592 반전
위 블록은 '더 큰 블록'에서 왔습니다. :
AT1G09410.1 | 기호 : | 펜타 트리 펩티드 (PPR) 반복 - 함유 단백질 | chr1 : 3035443-3037560 FORWARD
'큰 블록'에서도 추출 할 수 있습니까?
내 프로그래밍 수준은 초보자로서 가장 잘 설명 할 수 있으며 도움이 필요합니다. 실제로 각 통해 정규 표현식을 실행하면,
numericalBlockRegEx = r'chr\d+:(?P<firstNumBlock>\d+)-(?P<secondNumBlock>\d+)'
마지막 :
감사
AK
출력물을 구체적으로 게시 할 수 있습니까? –
@JoelCornett : 출력 형식을 17399789,17401949로 지정합니다.나는 모든 행에서 '큰 블록'을 읽고 '|'로 나누었다. 위의 블록 인 [-1]을 추출하려면 digit1, digit2와 같이 '-'로 구분 된 숫자를 추출해야합니다. 추출을 기존 루프에 적용 할 수 있지만 숫자를 추출하고 변수에 대입 할 정규 표현식이 필요합니다. – Bade