Python将unicode字符串匹配为unicode

2024-09-28 23:37:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试匹配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"对于admin是unicode。转换前是否有匹配的方法?输入未转换,它以unicode开头。我尝试过使用正则表达式,但没有成功


Tags: 字符串falsereturnifadmindefunicodeusername
1条回答
网友
1楼 · 发布于 2024-09-28 23:37:48

在Python3中,“unicode”和“string”之间不再有区别。所以字符串"\u0061\u0064\u006d\u0069\u006e"只是一个字符字符串admin,但使用unicode码点转义序列;这里没有“转换”,它完全等同于输入"admin"

你想达到什么目标

请记住,字符串转义序列,如\u0061,是在Python解析期间被转换的,它们实际上永远不会作为字符串的一部分结束。例如,如果用户将字符的文字字符串\u0061\u0064\u006d\u0069\u006e输入文本形式,那么在Python表示法中,您将得到一个相当于"\\u0061\\u0064\\u006d\\u0069\\u006e"的字符串(注意转义的反斜杠,表示这些是文字反斜杠,而不是转义序列)

相关问题 更多 >