检查字符串是否为十六进制

检查字符串是否为十六进制,第1张

检查字符串是否为十六进制

(1)
使用int()可以很好地解决此问题,Python会为您完成所有检查:)

int('00480065006C006C006F00200077006F0072006C00640021', 16)6896377547970387516320582441726837832153446723333914657L

将工作。万一失败,您将收到一个

ValueError
例外。

简短示例:

int('af', 16)175int('ah', 16) ...ValueError: invalid literal for int() with base 16: 'ah'

(2) 一种 替代
将遍历数据,并确保所有字符落入的范围内

0..9
a-f/A-F
string.hexdigits
'0123456789abcdefABCDEF'
因为它包含)是这个有用的
两个 上和下壳体数字。

import stringall(c in string.hexdigits for c in s)

会根据string中数据的有效性返回

True
或。
False``s

简短示例:

s = 'af'all(c in string.hexdigits for c in s)Trues = 'ah'all(c in string.hexdigits for c in s)False

注意事项

正如@ScottGriffiths在下面的注释中正确指出的那样,

int()
如果您的字符串
0x
开头包含该方法,则该方法将起作用,而逐字符检查将因此失败。同样,检查一
字符比 一串
字符要快,但是值得怀疑的是,这对于短的SMS字符串会很重要,除非您依次处理许多(很多!)字符,在这种情况下,您可以将stringhexditigs转换为一组字符与
set(string.hexdigits)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存