我正在尝试匹配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开头。我尝试过使用正则表达式,但没有成功
在Python3中,“unicode”和“string”之间不再有区别。所以字符串
"\u0061\u0064\u006d\u0069\u006e"
只是一个字符字符串a
、d
、m
、i
、n
,但使用unicode码点转义序列;这里没有“转换”,它完全等同于输入"admin"
你想达到什么目标
请记住,字符串转义序列,如
\u0061
,是在Python解析期间被转换的,它们实际上永远不会作为字符串的一部分结束。例如,如果用户将字符的文字字符串\u0061\u0064\u006d\u0069\u006e
输入文本形式,那么在Python表示法中,您将得到一个相当于"\\u0061\\u0064\\u006d\\u0069\\u006e"
的字符串(注意转义的反斜杠,表示这些是文字反斜杠,而不是转义序列)相关问题 更多 >
编程相关推荐