使用RegEx查找文件中的变量

2024-05-13 07:07:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想读出变量,这是下面提到的文件。你知道吗

#define xyz_u8 abc_0x0_u8 = 0x0 (for hex)
#define xyz_f16 abc_MOD1_f32 = -0.1f (for int and float)
#define xyz abc_YY = YY_ZZ (for others)

我正在使用

re.compile(r"^#define\s+(\w+)\s+(\w+)(0[xX][0-9a-fA-F]+)")

用于读取十六进制,但我无法从“=”获取值。有人能纠正正则表达式吗。你知道吗


Tags: and文件forfloatintabchexxyz
1条回答
网友
1楼 · 发布于 2024-05-13 07:07:32

我建议

^#define\s+(\w+)\s+(\w+) = (.+)

re.Ire.M一起使用(如果您有多行输入)。你知道吗

参见regex demo

图案说明

  • ^—字符串的开头(如果使用re.M,则为行)
  • #define-一系列文字字符
  • \s+-1个或多个空格
  • (\w+)-组1捕获一个或多个单词([a-zA-Z0-9_])字符
  • \s+-1个或多个空格
  • (\w+)-组2捕获一个或多个单词([a-zA-Z0-9_])字符
  • = -space,=,space(您可以在每个空格后面添加+以允许1个或多个空格,或者*以允许0个或多个空格)
  • (.+)-第3组将捕获线路的其余部分。你知道吗

相关问题 更多 >