Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Lua字符串模式-较短的代码_String_Lua_Pattern Matching - Fatal编程技术网

String Lua字符串模式-较短的代码

String Lua字符串模式-较短的代码,string,lua,pattern-matching,String,Lua,Pattern Matching,是否可以采取以下措施: a=[[do end workspace.Part["Child 1"].Object.child2["thing"]remove() do end]] a=a:gsub("%.%a+","{F}%0{F}") a=a:gsub('(%[%s*([\'"]?).*%2%s*%]):remove%(%)','{F}%1{F}:remove()') a=a:gsub('{F}%s*{F}','') a=a:gsub('{F}.-{F}','filterremove(%0)

是否可以采取以下措施:

a=[[do end workspace.Part["Child 1"].Object.child2["thing"]remove() do end]]
a=a:gsub("%.%a+","{F}%0{F}")  
a=a:gsub('(%[%s*([\'"]?).*%2%s*%]):remove%(%)','{F}%1{F}:remove()')
a=a:gsub('{F}%s*{F}','')
a=a:gsub('{F}.-{F}','filterremove(%0)')

Output: do end filterremove(Workspace.Part["Child 1"].Object.child2["thing"]) do end
并且只使用一个gsub就可以得到相同的结果,而不是两个?
无论x.y、x[y]、[x][y]等的组合如何。

a:gsub((%S*%b[]):remove%(%),“filterremove(%1)”)
您至少可以将其链接并换行:

a = [[do end workspace.Part["Child 1"]:remove() do end]]
a = a:gsub("%.%a+","{F}%0{F}")  
     :gsub('(%[%s*([\'"]?).*%2%s*%]):remove%(%)','{F}%1{F}:remove()')
     :gsub('{F}%s*{F}','')
     :gsub('{F}.-{F}','filterremove(%0)')
但实际上,这是行不通的。那么:

workspace.remove(x)
workspace["remove"](x)
getfenv()["work" .. "space"]["re".."move"](x)

提供示例输入和输出字符串?输入:workspace.Part[“Child”]:remove(),输出:filtermemove(workspace.Part[“Child”])
a=a:gsub((.*)%:remove%()”,“filtermemove(%1)”)
,它将尝试将整个程序“删除”到一个函数中。。我知道,但你需要指定一个你希望看到效果的例子。或者举几个例子。一旦有人提出了满足他们要求的实现,您就可以得到您所需要的。部分[“…”]:删除();OP至少需要做出一些假设…@Paul:我认为OP无法做出任何假设,因为他们几乎肯定是在尝试对未知代码进行沙箱处理。我不知道这一点,但如果是这样的话,这些尝试是徒劳的。空格不是问题s*,现在忘了它吧。连接和变量是问题所在,我无法确定它是否使用了“remove”。