首页 > 解决方案 > 如何在字符串匹配期间捕获所有特殊字符?

问题描述

在进行字符串匹配时,有什么方法可以捕获所有异常?例如,如果我有一个字符串,

print("red" =="red" )
# evaluates to True

然而,

print("Rεժ" == "red")
# evaluates to False

我想要的是能够捕获所有特殊情况,例如以下

print("Rεժ" == "red")
print("RêÐ" == "red")

被评估为True。这样做的用例是能够进行某种文本过滤以捕获所有单词“red”。

标签: pythonstringunicode

解决方案


正如 Tomalak 和 Laurens Koppenol 在评论中回避的那样,这可能与其他涉及 UTF8 或带重音符号的 Unicode 字符的 SO 问题重复,但以下代码对我来说返回 true:

import unidecode

accented_string = u'RêÐ'
unaccented_string = unidecode.unidecode(accented_string)
print(unaccented_string.lower() == "red")

推荐阅读