python - 从Python中的字符串中去除不可打印的字符?

标签 python pycharm html-parsing python-3.4

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

我的Python代码有这个:

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

0

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

来自 print(ascii(secondAnswer)) 'Paci\ufb01c'

我有一种感觉,len(re.findall(secondAnswer, page)) 中的 secondaryAnswer 值正在使用“Paci\ufb01c”,因此在页面上找不到任何匹配项。

有人可以给我一些关于如何解决这个问题的提示吗?

谢谢,尼克

最佳答案

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

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

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

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

关于python - 从Python中的字符串中去除不可打印的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47564464/

相关文章:

python - 注册和登录 api 中的 Django Rest 框架

python - 更好地理解这段 python 代码

python - 查找所有导入的外部库

python - 如何在 python 3.5 中安装 opencv 库?

python - 类型错误 : no salt specified in flask(about sha256)

python - 在 Python 中是否有更简洁的方法来编写此 bool 比较?

python - Pycharm 调试器比正常运行慢得多

objective-c - HTML解析 objective-c

php - 关于 querypath 的 2 个基本问题

java - 如何使用 Java 将 HTML 内容转换为 PDF 而不会丢失格式?