使用lua拆分字符串

时间:2015-04-30 19:07:46

标签: java string lua

我需要一个lua代码来拆分youtube页面行并获取youtube视频标题和ID。

所以我需要使用lua提取id:r8ocUWwuJDg 标题:"Farsa cu camera ascunsa / Tentatiile soldatilor" 像下一个一样形成一个字符串

</div><div class="yt-lockup-content"><h3 class="yt-lockup-title"><a href="/watch?v=r8ocUWwuJDg" class=" yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink     spf-link " data-sessionlink="itct=CMwBEJQ1GAYiEwia-4r23Z7FAhVD3xwKHSUQAKQojh4yCmctaGlnaC1yZWM" title="Farsa cu camera ascunsa / Tentatiile soldatilor" aria-describedby="description-id-58700" dir="ltr">Farsa cu camera ascunsa / Tentatiile soldatilor</a>

如何在lua中执行此操作?如何拆分文本并获取标题和ID? 谢谢大家

1 个答案:

答案 0 :(得分:2)

一般来说,这种工作应该用解析器完成,而不是模式匹配。

不过,这应该有效:

local str = [[
</div><div class="yt-lockup-content"><h3 class="yt-lockup-title"><a href="/watch?v=r8ocUWwuJDg" class=" yt-ui-ellipsis yt-ui-ellipsis-2 yt-uix-sessionlink     spf-link " data-sessionlink="itct=CMwBEJQ1GAYiEwia-4r23Z7FAhVD3xwKHSUQAKQojh4yCmctaGlnaC1yZWM" title="Farsa cu camera ascunsa / Tentatiile soldatilor" aria-describedby="description-id-58700" dir="ltr">Farsa cu camera ascunsa / Tentatiile soldatilor</a>
]]

local id = str:match('<a href="/watch%?v=(.-)"')
print(id)

local title = str:match('title="(.-)"')
print(title)

请注意,-用于延迟重复。