우리는 Django를 통해 BeautifulSoup를 사용하여 텍스트 추출을 시도하고 있습니다. 우리는 우리가 이해할 수없는 다음과 같은 것으로 추적 한 이상한 버그가 있습니다.유니 코드를 포함하는 장고 정규 표현식 혼동
우리는 표준 파이썬 프롬프트에서 다음을 발행하는 경우 : 예상해야한다으로
import re
print re.match("&#([0-9]+)[^0-9]","»")
우리는 None
의 출력을 얻을. 그러나이 코드를 sgmllib.py에 넣으면 (장고는 결국 웹 사이트를 통해 긴 호출 문자열을 호출합니다), 은과 성공적으로 일치하고 객체를 반환합니다. Django는 위의 문자열에서 x
을 어떻게 든 무시하는 것처럼 우리에게 나타납니다. 이 코드는 유니 코드 설정과 관련이 있어야한다고 생각하지만 장고 Python 2.6 세션에서이 코드를 직접 실행하는 것과는 달리 Django가 다른 방식으로 실행되는 이유를 파악할 수 없습니다.
정상적으로 실행될 때 위의 정규 표현식이 일치하지 않지만 장고가 시도 할 때 은과 일치해야하는 이유는 무엇입니까?
데이터가 어떻게 보이나요? –
예제 대신 여기에 원래 코드를 추가하려고 시도하십시오. 아마도 다른 코드 줄에 오류가 있습니다. 누락되었습니다. 예를 들어, "& # x00bb; " 가치는 ....에서 비롯됩니다. – marianobianchi