Lua为每个单词做一些事情



是否对每个单词做一些事情,比如把它们放在一个表中,但不作为一个列表。像这样一个完整的句子(字符串):

skylift valkyrie2 airbus hunter adder bus armytanker armytrailer armytrailer2 baletrailer boattrailer
do ... for each word
(put in table)
end

gsub()?

€ /bin/lua
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> str = "skylift valkyrie2 airbus hunter adder bus armytanker armytrailer armytrailer2 baletrailer boattrailer"
> do local text, count = str:gsub('%w+', function(match) return(match):upper() end) print(text, count) end
SKYLIFT VALKYRIE2 AIRBUS HUNTER ADDER BUS ARMYTANKER ARMYTRAILER ARMYTRAILER2 BALETRAILER BOATTRAILER   11

您可以自由地在gsub()的函数中做您想做的事情。
例如table.insert(gstab, match)

> gstab = {}
> gsfunc = function(match) local match = match:sub(1, 1):upper() .. match:sub(2, -1) table.insert(gstab, match) return(match) end
> str:gsub('%w+', gsfunc)
> print(table.concat(gstab, 'n'))
Skylift
Valkyrie2
Airbus
Hunter
Adder
Bus
Armytanker
Armytrailer
Armytrailer2
Baletrailer
Boattrailer

最新更新