从字符串中提取十六进制数

3

我想从字符串中提取十六进制数。例如,字符串是:OxDB52 Message 1 of orderid 1504505254 for number +447123456789 rejected by Operator。我想提取十六进制的OxDB52部分。我知道可以通过检查字符串中的0x来完成这个过程。

但是有没有更酷的pythonic方法从字符串中提取十六进制数呢?

2个回答

8
你可以使用正则表达式模式与 re.findall() 方法一起使用:
re.findall(r'0x[0-9A-F]+', your_string, re.I)

这将为您提供your_string中所有十六进制数字的列表。

演示:

>>> s = '0xDB52 Message 0x124A orderid 1504505254 for number 0xae45'
>>> re.findall(r'0x[0-9A-F]+', s, re.I)
['0xDB52', '0x124A', '0xae45']

4
假设单词被正确分隔。
[x for x in my_string.split() if x.startswith('0x')]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接