2013-07-22 3 views
2

파이썬에서 정규식을 사용하여 마침표로 구분 된 약어를 ​​일치 시키려고합니다.Python에서 Regex를 사용하여 약어 찾기

import re 
test_string = "U.S.A." 
pattern = r'([A-Z]\.)+' 
print re.findall(pattern, test_string) 

이것의 결과는 다음과 같습니다 :

['A.'] 

나는 이것이 결과입니다 이유에 혼란 스러워요 나는 다음과 같은 코드가 있습니다. 나는 + 욕심이지만, 왜 [A-Z] \의 첫 번째 사건인지는 알지 못합니다. 무시 했니?

답변

3

정규식의 (...)은 그룹을 만듭니다. 나는로 변경 제안 :

pattern = r'(?:[A-Z]\.)+' 
+0

감사합니다. 파이썬의 정규 표현식으로 '그룹'을 더 살펴 보았습니다. 지금은 의미가 있습니다. – jmulmer

2

설명

이 정규식 것이다 :

  • 가 문장
  • 의 끝에서 대문자 단어를 일치 피하는 문장 U.S.A. 같은

    • 캡처 모든 약어

    (?:(?<=\.|\s)[A-Z]\.)+

    enter image description here

    라이브 예 : http://www.rubular.com/r/9bslFxvfzQ

    샘플 텍스트

    This is the U.S.A. we have RADAR. 
    

    일치

    U.S.A