2011-03-30 2 views
2

문제 파이썬에서파이썬 재 경기 유니 코드 문자

# -*- coding: utf8 -*- 

import re 

locations = [ 
    "15°47'S 47°55'W", 
    "21º 18' N, 157º 51' W", 
    "32°46′58″N 96°48′14″W", 
] 

rx = re.compile(ur""" 
    ^\d+[°º] 
    | 
    ^\d+[\xb0\xba] 
    """, re.X) 

for loc in locations: 
    if not rx.match(loc): 
     print loc 

결과 정규식에 유니 코드 문자를 일치 갖는

15°47'S 47°55'W 
21º 18' N, 157º 51' W 
32°46′58″N 96°48′14″W 

는 유니 코드 문자와 일치하는 것 같지 수를!

답변

5

locations 유니 코드 문자열이 아닌 때문입니다.

locations = [ 
    u"15°47'S 47°55'W", 
    u"21º 18' N, 157º 51' W", 
    u"32°46′58″N 96°48′14″W", 
] 
+0

파이썬은 자동으로 변환합니다. – phihag

+1

@phihag : '인쇄 re.match (U "°"는 "°")는'파이썬 2.7에서 None입니다. – kennytm

+0

아, 네 말이 맞아. 이 "자동 변환"은 양면이 ASCII의 서브 세트 인 경우에만 작동합니다. – phihag