所以目前我正试图找出一个特定单词出现在页面上的次数。
我的Python代码有:
print(len(re.findall(secondAnswer,page)))
0
仔细分析后,我注意到了 print(secondAnswer)给了我一个不同的答案“太平洋”
from print(ascii(secondAnswer))'Paci \ ufb01c'
我感觉我在len中的第二个答案值(re.findall(secondAnswer,page))改为使用'Paci \ ufb01c'而没有在页面上找到任何匹配。
有人可以给我任何解决方法吗?
谢谢,尼克
答案 0 :(得分:3)
Unicode字符fb01
是fi ligature。也就是说,就Python而言,它只是一个字符,但在显示时显示为两个(并列)字符。
要将连字分解为单独的字符,可以使用unicodedata.normalize
。例如:
page = unicodedata.normalize("NFKD", page)
或者在这种特定情况下,您可以编写正则表达式以接受连字作为fi
字符序列的替代,例如通过使用非捕获组的交替:paci(?:fi|fi)c
。 / p>