我正在学习 Tcl 和正则表达式。我有一个任务,我需要一个
Tcl 脚本执行并需要一些帮助。
我有一个要解析为表的 C++ 头文件。这是一个定义常量的文件。
我需要解析两种形式:
const int a = 0x00000001; //Comment for this variable
const int b = 0x00000003; //Comment for this variable
和枚举中的定义,例如:
CONSTNAMEA = MACROA | MACROB | 0x000A, //Comment for this variable
CONSTNAMEB = MACROA | MACROB | 0x00C1, //Comment for this variable
在第一组中,我需要替换 '=' 和 ';' 用'|'。这很容易用 regsub 完成。然而,第二组有点复杂,我似乎无法正确理解。
我想要做的是将'CONSTNAMEA'、'0x000A'和注释提取到单独的变量中。
我的想法是我需要三个正则表达式。一个解析名称,另一个解析数字,第三个解析注释。
The name regex would be "Start at beginning of string and stop at '='"
The number would be '|' {anything} ','
And the comment would be "//" {anything} '\n'
正确的?对于构建这些正则表达式的任何帮助,我将不胜感激!