2014-07-21 9 views
-2

아래에서 Queen 's University를 캡쳐하려고합니다. 인코딩을 표준화하기 위해 유니 코드를 사용해 보았습니다. 하지만 아래 패턴은 캡처가 아닙니다. 도와 주셔서 감사합니다!Regex python에서 TM 캡처하기

from unidecode import unidecode 
CV2 = unidecode(CV) 

namepat = r'\d+\s+[A-Za-z&.(),:+# -]{5,150}?(?=[A-Z][A-Z])' 

이상적으로는 포착 될 것이다 :

128 Queen(tm)s University# 

원래 CV

(21) 아이오와 주립 대학 & 재단 IA 673,515 604,897 11.3 (122) 웨슬리 대학 CT 669,593 600,529 11.5 (123) 쿠퍼 유니온 NY 668,408 641,324 4.2 124 Rochester Institute of Technology NY 668,406 627,786 6.5 125 Bucknell Univ ersity PA 666,562 599,216 11.2 (126) 매사추세츠 재단의 대학, Inc.의 MA 664,240 565,020 17.5 127 버지니아 공대 재단 VA 660,340 594,776 11.0 128 여왕 \가 658,896 595,652 10.6 129 콜비 대학 ON 대학 # ME 649,992 599,557 8.4 (130) 로마 린다 대학을 u2122s CA 648,490 597,669 8.5 (131) Principia 회사 MO 638,419 593,054 성령 크로스 MA 634,912 589,769 7.7 133 마운트 홀리 요크 대학 MA 631,950 582,623 8.5 (134 개) 오클라호마 주 리전트 고등 교육 OK 625,719 447,538 39.8 135 렌 셀러 폴리 테크닉 대학의 7.6 (132) 대학 NY 616836 583,350 5.7 136 노스 이스턴 대학교 MA 616,618 566,767 8.8 137 맥 마스터 U

웨슬리 대학 CT 669,593 600,529 11.5 (123) 쿠퍼 유니온 NY 668,408 641,324 4.2 (124) 로체스터 기술 연구소의 NY 668,406 627,786 6.5 125 버크 넬 대학 PA 666,562 599,216 11.2 (126) 매사추세츠 대학 재단의 CV2 후

출력 658,896 595,652 10.6 129 콜비 대학 ON, Inc.의 MA 664,240 565,020 17.5 127 버지니아 공대 재단 VA 660,340 594,776 11.0 128 여왕 (TM)의 대학 # ME 649,992 599,557 8.4 (130) 로마 린다 대학 CA 648,490 597,669 8.5 131,536,913,632 10 Principia 공사 MO 638,419 593,054 이런 크로스 MA 634,912 589,769 7.7 133 마운트 홀리 요크 칼리지 MA 631,950 582,623 8.5 134 개 오클라호마 주 리전트 높은 교육 OK 625,719 447,538 39.8 135 렌 슬러 공대 7.6 132 대학 NY 616,836 583,350 5.7 136 북동부 대학 M

+0

당신은 심각하게 하나의 긴 덩어리에 텍스트가 있습니까? –

+0

예, 불행히도 : ( – user3314418

답변

1

코드가 작동합니다.

print re.findall(namepat, CV2) 

['123 Cooper Union ', 
'124 Rochester Institute of Technology ', 
'125 Bucknell University ', 
'126 University of Massachusetts Foundation, Inc. ', 
'127 Virginia Tech Foundation ', 
'128 Queen(tm)s University# ', 
'129 Colby College ', 
'130 Loma Linda University ', 
'131 Principia Corporation ', 
'132 College of the Holy Cross ', 
'133 Mount Holyoke College ', 
'134 Oklahoma State Regents for Higher Education ', 
'135 Rensselaer Polytechnic Institute '] 

후행 공백을 제거하는 것이 좋습니다.

namepat = r'\d+\s+[A-Za-z&.(),:+# -]{5,150}?(?= ?[A-Z][A-Z])' 
+0

감사합니다! 나는 정말 어리석은 명명 오류를 만들었다는 것을 깨달았습니다. – user3314418