python - Python将unicode字符串匹配为unicode
问题描述
我正在尝试匹配一个 unicode 字符串,这样 unicode 将不匹配字符串文字。
def validate(username):
if "admin" in username:
return False
else:
return True
validate(username)
如果我通过username="\u0061\u0064\u006d\u0069\u006e"
,它将返回 False,因为它正在转换 unicode,然后匹配,并且"\u0061\u0064\u006d\u0069\u006e"
是 unicode 用于管理员。有没有办法在转换之前进行匹配?输入没有被转换,它以 unicode 开始。我尝试过使用正则表达式,但没有成功。
解决方案
在 Python 3 中,“unicode”和“string”之间不再有区别。所以这个字符串"\u0061\u0064\u006d\u0069\u006e"
只是一个由字符a
, d
, m
, i
,组成的字符串n
,但是使用了 unicode 码点转义序列;这里没有“转换”,它完全等同于输入"admin"
.
你想达到什么目的?
请记住,字符串转义序列,如,在 Python解析\u0061
期间被翻译,它们实际上永远不会作为字符串的一部分结束。相反,例如,如果用户将文字字符串输入到文本表单中,那么在 Python 表示法中,您将得到的字符串等同于(注意转义的反斜杠,表示这些是文字反斜杠而不是转义序列)。\u0061\u0064\u006d\u0069\u006e
"\\u0061\\u0064\\u006d\\u0069\\u006e"
推荐阅读
- r - 过去有特定 # 次观察的上个月值的持续时间
- git - 如何在 Git 重置选项之间进行选择
- ruby-on-rails - 将存储库从 Gitlab.com 传输到自托管私有 Gitlab 实例时出错?
- c# - 为 C# 和 C++ 定义枚举的 C# 文件
- html - 如何使用响应大小的图像防止卡顿并减少布局偏移?
- azure - 我可以识别/知道我是什么 OrchestrationStep 吗?
- android - Android 每天都在运行警报管理器
- javascript - 使用 jquery 加载 html 片段
- azure-cognitive-search - 如何在特定文档中搜索
- sql - 我可以使用 DAO Excel VBA 记录集执行类似 SQL JOIN 的操作吗?