如何使用lua模式捕获html标签

时间:2014-08-07 19:14:12

标签: lua lua-patterns

这就是我试图从外观中提取的内容:http://pastebin.com/VD0K3ZcN

lines:match([[title="(value here)">]])

我怎样才能获得“价值”?它没有数字或“>”里面的符号,只有字母,空格,' - 和。

我试过了

lines:match([[title="(.+)">]])

但它只是在捕获后得到整条线。

1 个答案:

答案 0 :(得分:5)

您的模式存在问题:

title="    -- This is fine, but you probably want to find out what tag title is in.
(.+)       -- Problem: Greedy match. I'll illustrate this later.
">         -- Will match a closing tag with a double quote.

现在,如果我有这个HTML:

<html>
 <head title="Foobar">
 </head>
 <body onload="somejs();">
 </body>
</html>

您的模式将匹配:

Foobar"></head><body onload="somejs();

您可以使用(.-)解决此问题。这是非贪婪的版本,它将匹配尽可能少的数量,一旦找到下一个">而不是最后一个">就会停止。