2017-12-20 14 views
-1

웹 사이트에서 다운로드하고 BeautifulSoup를 사용하여 구문 분석 한 텍스트에서 \ x92, \ xa0 등의 기호를 제거하려고합니다. 그럼 내가 어디서나이 기호 (인코딩)를 가지고있는 것을 알 수 있습니다. 나는 txt에서 이러한 기호를 제거하기 위해 re.sub(r'[^\x00-x7F]',' ',txt) 을 사용하고 있지만, 나는 각각 y을 잃어버린 것으로 나타났습니다. 예 : '보안'이 'Securit'이되었습니다.Python 3에서 정규식 하위 함수에 문제가 있음

모든 도움을 주시면 감사하겠습니다.

감사합니다.

+2

'x7F' 전에''\''를 놓쳤습니다. 'r '[^ \ x00- \ x7F]''. '0-x'는 '0'에서 'x'까지의 범위를 만들기 때문에 'y'와 'z'가 일치하고 제거됩니다. –

+0

죄송합니다. 범위는'\ x00'에서'x'입니다. 're.DEBUG'를 사용하십시오, [이 데모] (https://ideone.com/stTDi3)를보십시오. 그것은 여러분의 패턴이'range (0, 120)','literal 55' 및'literal 70'을 제외한 모든 패턴과 일치 함을 보여줍니다. –

+0

고마워요. 그것은이 문제 (그리고 큰 두통)를 해결했습니다. 감사. – user62198

답변

-1

(오류가있는) 정규식 r'[^\x00-x7F]'은 아마도 r'[^\x00-\x7F]'이어야합니다 (추가 백 슬래시가 있음).

작성한대로 이 아닌은 NUL에서 x까지입니다. 따라서 y 및 그 이후의 ASCII 코드가 누락되었습니다.