我想gsub
在 lua 中使用这样的转换表达式:
MACRO(part1, part2)
在这:
part1SOMETHINGpart2
SOMETHING
取决于part1
和part2
。_
所以我可以使用类似的东西:
line = (string.gsub(line, "MACRO%((.-), *(.-)%)", "%1SOMETHING%2"))
并乘以对捕获的两个部分设置一些条件的行,以处理不同的情况。
问题是 part1 或 part2 可以包含宏:
MACRO(MACRO(a,b),c)
所以上面的表达式不会匹配好的括号......
我知道在 lua 中有可能将平衡括号与 %b() 匹配,但据我所知,我们不能在内部设置条件,也不能像上面所做的那样使用捕获。
你知道实现我想做的事情的方法吗?