当我进行字符串比较时,即使两个字符串相等,我也会发现它们不相等。
我正在从2个PDF中提取文本。提取的文本是相同的。但是我可以看到其中一种字体发生了变化。我不明白为什么?
str1 ='确认'
str2 ='确认'
str1 == str2
错误
答案 0 :(得分:0)
问题在于,第一种情况下字符串中的“ fi”是连字(https://en.wikipedia.org/wiki/Typographic_ligature),而第二种情况下是“ f”和“ i”的总和。
您可以使用函数来检查是否存在连字并用纯文本替换
def ligature(string):
if 'fi' in string:
string.replace('fi', 'fi')
return string
如果您在文本中发现了更多连字,也可以添加其他if
条语句。
答案 1 :(得分:0)
使用difflib库,您可以看到要比较的字符串之间存在明显的差异。要自己检查,可以尝试以下说明:
>>> import difflib
>>> str2 = 'Confirmations'
>>> str1 = 'Confirmations'
>>> print('\n'.join(difflib.ndiff([str1], [str2])))
得出
- Confirmations
? ^
+ Confirmations
? ^^
>>>