Lua split函式的簡易實現

2021-06-20 09:12:03 字數 792 閱讀 9612

**是這樣的:

function split(s,p)

a={}

string.gsub(s,'[^'..p..']+',function(w) table.insert(a,w) end)

return unpack(a)

en

string.gsub這個函式很有意思:

第乙個引數是字串,

第二個引數是模式識別pattern,類似於正規表示式,其中」[^p]+「表示識別不在p中出現的字元1個或多個,表示乙個集合,^表示取補集,+表示出現乙個或多個(*表示0個或多個個)

第三個引數可以有三種:

如果是字串,則按照pattern識別的每個串都會按給出的這個串來替換原字串

如果是table,則按pattern為key在table中查詢value來替換原字串

如果是function,則執行這個function。以上的**就是利用這個啦~

**用例:

function split(s,p)

a={}

string.gsub(s,'[^'..p..']+',function(w) table.insert(a,w) end)

return unpack(a)

endn=split(io.read(),'.')

for i=1,n do

print(split(io.read(),' '))

end

可以如果數字n,然後讀入n個字串,每個按照空格隔開

簡易動畫的實現

在ios開發中,想實現一些小動畫是非常容易的 簡易動畫大致有2種方式 1.頭尾式 uiview beginanimations nil context nil 需要執行動畫的 uiview commitanimations 示例程式如下 開始動畫 uiview beginanimations nil...

簡易shell的實現

自主minishell實現 1 獲取標準輸入 2 解析輸入得到 命令名 執行引數 3 建立子程序 子程序中進行程式替換 4 程序等待 include include include include include intmain printf uesr localhost fflush stdout...

簡易shell的實現

編寫乙個簡易shell,需要迴圈以下流程 獲取命令列 解析命令列 建立乙個子程序 fork 替換子程序 execvp 父程序等待子程序退出 wait 實現 include include include include include include intmain fgets buf,1024 s...