python正则表达式,从列表输出中提取字节

标签 python regex

我正在尝试从 Visual Studio 中通过/Fa 标志生成的列表文件中提取二进制操作码。格式如下:

00040   8b 45 bc     mov     eax, DWORD PTR _i$2535[ebp]
  00043 3b 45 c8     cmp     eax, DWORD PTR _code_section_size$[ebp]
  00046 73 19        jae     SHORT $LN1@unpacker_m

当第一个数字是地址时,我们有操作码,然后是指令助记符,在这种情况下,我想获得一个数组:

8b 45 bc 3b 45 c8 73 19

首先,我分割该行,然后运行以下正则表达式来获取字节:

HEX_BYTE = re.compile("\s*[\da-fA-F]{2}\s*", re.IGNORECASE)

但是这个正则表达式匹配所有内容,有人知道如何以简单的方式做到这一点吗? 谢谢 大卫

最佳答案

忘记正则表达式,从固定字段中提取数据过于复杂。声明

line = '  00043 3b 45 c8     cmp     eax,'
print(line[7:19].split())

产量

['3b', '45', 'c8']

您可能需要

line = line.expandtabs()

首先,如果输入字符串中有 Tab 字符。

关于python正则表达式,从列表输出中提取字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35149262/

相关文章:

python - 为什么 Bokeh 不在这里生成额外的 y 范围?

mysql 与正则表达式精确匹配?

python - 使用 CIGAR 推断序列的长度

python - 将标准格式日期字符串转换为日期时间对象

python - 使用 cifar 100 数据预训练 cifar 10 网络

regex - 搜索不区分大小写并替换整个单词

c - 用于在源代码中搜索的正则表达式(while 循环)

javascript - 不使用正则表达式匹配嵌套出现的情况

java - 正则表达式显示错误答案

python - 无法从pycharm导入numpy