我有一堆 Lua 5.1 文件,里面有这个(或类似的)结构:
...
本地阿尔法,
测试版
=功能“伽玛”
{
'三角洲',
'ε'
}
...
也就是说,对 的调用FUNCTION返回一个函数,该函数返回一些值,这些值分配给一些局部变量,在现场声明。
确切的代码可能会有所不同——无论是在风格上(例如,所有内容都可能在同一行),还是在内容上(例如,可以有零个参数传递给第二个函数调用)。但事情总是以 开始local,并以两个链式函数调用结束。
我有一个电话号码FUNCTION。我需要找到链中最后一个函数调用的结尾(这个特定的函数;FUNCTION文件中的某个位置可能还有更多调用),并从该点向上删除所有文件内容。
即,之前:
打印(“富”)——01
本地 alpha = FUNCTION 'beta' -- 02
{“伽马”}——03
打印(“酒吧”)——04
后:
-- 03 打印(“酒吧”)——04
关于如何解决这个问题的任何线索?
更新:
为了更清楚地说明为什么天真的正则表达式方法不起作用,一个现实生活中的例子:
本地阿尔法
= FUNCTION ( -- 我的行号点在这里
功能“测试版”{“伽玛”}()
和“ε”
或“泽塔”
)
{
'埃塔'
} -- 结果应该从这里和上面切掉