从python中的字符串中剥离不可打印的字符?

时间:2017-11-30 01:21:39

标签: python pycharm html-parsing python-3.4

所以目前我正试图找出一个特定单词出现在页面上的次数。

我的Python代码有:

  
    

print(len(re.findall(secondAnswer,page)))

         
      

0

    
  

仔细分析后,我注意到了 print(secondAnswer)给了我一个不同的答案“太平洋”

from print(ascii(secondAnswer))'Paci \ ufb01c'

我感觉我在len中的第二个答案值(re.findall(secondAnswer,page))改为使用'Paci \ ufb01c'而没有在页面上找到任何匹配。

有人可以给我任何解决方法吗?

谢谢,尼克

1 个答案:

答案 0 :(得分:3)

Unicode字符fb01fi ligature。也就是说,就Python而言,它只是一个字符,但在显示时显示为两个(并列)字符。

要将连字分解为单独的字符,可以使用unicodedata.normalize。例如:

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

或者在这种特定情况下,您可以编写正则表达式以接受连字作为fi字符序列的替代,例如通过使用非捕获组的交替:paci(?:fi|fi)c。 / p>