11.1
修改模式匹配中的%w+为%w%w%w%w+
for line in io.lines() do
for word in string.gmatch(line,"%w%w%w%w+") do
counter[word] = (counter[word] or 0)+1
end
end
11.2
从文本文件中读取到ingorewords单词,在循环中逐个判断
---
--- Generated by EmmyLua(https://github.com/EmmyLua)
--- Created by 15240.
--- DateTime: 2019/12/8 12:07
---
function f()
local ingorewords= {}
io.input("ingoreWords")
for line in io.lines() do
for word in string.gmatch(line,"%w+") do
ingorewords[word] = word
end
end
flag = true
io.input("10.lua")
local counter = {}
for line in io.lines() do
for word in string.gmatch(line,"%w%w%w%w+") do
for k,v in pairs(ingorewords) do
if v==word then
flag = false
end
end
if flag then
counter[word] = (counter[word] or 0)+1
end
flag = true
end
end
local words = {}
for w in pairs(counter) do
words[#words+1] = w
end
table.sort(words,function(w1,w2)
return counter[w1]>counter[w2] or counter[w1]==counter[w2] and w1<w2
end)
local n = math.min(tonumber(arg[1] or math.huge),# words)
for i = 1, n do
io.write(words[i],"\t",counter[words[i]],"\n")
end
end
f()