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

Moj*_*imi 1 lua lua-patterns

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

lines:match([[title="(value here)">]])
Run Code Online (Sandbox Code Playgroud)

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

我试过了

lines:match([[title="(.+)">]])
Run Code Online (Sandbox Code Playgroud)

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

小智 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.
Run Code Online (Sandbox Code Playgroud)

现在,如果我有这个HTML:

<html>
 <head title="Foobar">
 </head>
 <body onload="somejs();">
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

您的模式将匹配:

Foobar"></head><body onload="somejs();
Run Code Online (Sandbox Code Playgroud)

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