2017-11-30 25 views
0

그래서 현재 페이지에 특정 단어가 몇 번 나왔는지 알아 내려고 노력하고 있습니다.파이썬에서 문자열의 인쇄 할 수없는 문자를 제거 하시겠습니까?

내 파이썬 코드는 다음과 같습니다

인쇄 (LEN (re.findall (secondAnswer 페이지)))

0

시 신중한 분석, 나는 그 것으로 나타났습니다 print (secondAnsw 어) 나에게 다른 대답은 "태평양"인쇄 (아스키 (secondAnswer)) 'PACI \의 ufb01c'

에서

를주고 그 렌 내 secondAnswer 값 (re.findall (secondAnswer 페이지의 느낌이)) 대신 'Paci \ ufb01c'를 사용하므로 페이지에서 일치하는 항목을 찾을 수 없습니다.

누군가가 해결 방법에 관한 조언을 해 줄 수 있습니까?

덕분에, 닉

답변

3

유니 코드 문자 fb01fi ligature입니다. 즉, 파이썬에 관한 한 한 문자지만 표시 될 때 두 개의 묶인 문자로 나타납니다.

합자를 각각의 문자로 분해하려면 unicodedata.normalize을 사용할 수 있습니다. 예를 들면 :

page = unicodedata.normalize("NFKD", page) 

또는이 특정한 경우에, 당신은 비 캡처 그룹과 교대를 사용하여 예를 들어, fi 문자 순서에 대한 대체로서 합자를 허용하도록 정규식을 쓸 수

: paci(?:fi|fi)c.

+0

필자가 "합자를 fi 문자 시퀀스의 대체 문자로 허용하는"정규식을 작성하는 방법에 대해 자세히 설명해 주시겠습니까? 죄송합니다. 프로그래밍을 처음 접했습니다. –

+0

내 답변에 추가했습니다. – kindall

+0

감사합니다. 그렇다면 캡처하지 않는 그룹은 어디에 두어야합니까? 스크립트와 함께 PyCharm을 사용하고 있습니다. –