以下是我的专栏:
num1 -num2 num3: var.shift varstate=shift, var3=num, var4=False/True, Shift 0xabc5d
num1 -num2 num3: var.shift varstate=shift, var3=num, var4=False/True, Shift 0xabc08
num1 -num2 num3: var.shift varstate=shift, var3=num, var4=False/True, Shift [38b]0xabc34
我试图从行中获取十六进制值。我只需要在[38b] 0xabc1234567890000000000000000000000000形式的行中的一行中使用十六进制值。我不需要所有的十六进制值。
我的所有十六进制值都以0x开头,所以我在re.match中给出了
#!/usr/bin/env python
import sys
import re
import binascii
import string
value_file = open("test2.txt","r")
file2 = open("out.txt", "w")
for line in value_file:
line_string = str(line)
line_nospace = line.replace(" ", "")
lines_cont = line_nospace.rstrip("\n")
reg_match = re.match(r'\[([38b]]*)\](0-9a-zA-Z)', lines_cont)
print reg_match
答案 0 :(得分:2)
您的正则表达式(.*) 0x(\.*)
会转义第二组中的句点,这意味着它匹配零个或多个句点而不是零个或多个任意字符。
如果要匹配0x
之后的所有内容,请删除反斜杠。