使用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? 谢谢大家。

点赞
用户1009479
用户1009479

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

不过,仍然可以使用以下代码:

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)

注意,用 - 用于匹配尽可能少的重复次数。

2015-04-30 19:56:58