如何使用Lua模式捕获HTML标签

以下是我试图从中提取的内容:http://pastebin.com/VD0K3ZcN

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

我如何得到“value here”?它里面没有数字或">"符号,只有字母、空格、' - 和。

我已经尝试过

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

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

点赞
用户2698261
用户2698261

你的模式存在问题:

title="    -- 这没问题,但你可能想要查找标签title所在的位置。
(.+)       -- 问题:贪婪匹配。稍后我会举例说明。
">         -- 会匹配到双引号结尾的闭合标签。

如果我有这个 HTML:

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

你的模式将匹配到:

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

你可以使用(.-)进行修正。这是非贪婪版本,它将尽可能匹配最少的字符,一旦找到下一个">而不是最后一个 ">,就会停止。

2014-08-07 19:26:14