我试图让所有第一级标签嵌套在任何通过我的反向代理的html响应的head标签下。我正在运行nginx + lua,所以在lua模式匹配方面的解决方案会很棒......
现在我将string.sub()放在head标签的内部,然后迭代嵌套标签,将它们逐个添加到表中:
local headOnly = string.sub(wholeHtmlResponse, startHead, endHead)
local tags = {}
for tag in string.gmatch(headOnly, '(<[^<>]*>)') do
tags[#tags+1]=tag
end
然后我遍历&#34;标签&#34;表,删除所有非第一级标记。我对标签中的任何参数或内容不感兴趣,只对标签本身感兴趣。 我们正在谈论实时请求,如果请求的头部足够大,我担心这会变得很慢。
所以我有一些相关的问题:
任何意见都赞赏!
答案 0 :(得分:0)
string.gmatch足够有效吗?
您可以通过运行与您的用例匹配的测试来自己回答此问题。一般性答案不太可能对您有所帮助。
是否有方法/模块可以更有效地完成此任务?
也许,但这又取决于你想要做什么。如果您正在寻找特定标签,搜索该特定标签可能会更快,而不是解析和存储所有标签然后检查。如果早期比赛满足您的条件,您也可以提前中止。