Python 2.7正则表达式:从文本字符串中提取第三个十六进制值

时间:2017-11-20 23:39:17

标签: python

我想使用正则表达式从下面的字符串中提取第三个十六进制数字。我似乎无法使正则表达式正确。

我在下面有一个字符串:

    s = ('0x11111111 0x22222222 0x33333333 0x44444444')
    x = re.compile((0x)+(\w+))

代码:

    value = re.search(x, s)
    if value:
            result = int(value.group(2),16)
            print hex(result) 

1 个答案:

答案 0 :(得分:0)

您想使用re.findall

s = '0x11111111 0x22222222 0x33333333 0x44444444'
x = re.compile(r'\w+')

# Use find all to get a list of all matching elements
values = x.findall(s)
if values:
        # Extract the wanted element (you should really check
        # len of string or better catch IndexError)
        result = int(values[2], 16)
        print(hex(result))