簡體   English   中英

Lua字符串模式 - 更短的代碼

[英]Lua String patterns - shorter code

有可能采取這個:

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來獲得相同的結果,而不是兩個? 無論xy,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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM