3

如果我有一个字符串,例如

这是一个网站,位于 http://www.abc.com/post_id?id=123&key=456,请访问并告诉我。谢谢

如何在Lua中解析这个字符串,这样我可以得到三个子字符串:

字符串 1 - http(s) url 之前的文本

字符串 2 - http(s) url 本身(带有所有参数)

字符串 3 - http(s) url 后面的文本

请注意,“http”之前可能没有空格。谢谢。

4

1 回答 1

3

最简单的模式是:(.+)%s+(https?%S+)%s+(.*)$

local str = "This is a website, it is at http://www.abc.com/post_id?id=123&key=456, please visit it and let me know. Thanks"
local sPre, sLink, sPost = str:match( "(.+)%s+(https?%S+)%s+(.*)$" )

它会给你:https ://eval.in/43745

缺点是,您将获得,包含字符的 URL。


中间部分(https?%S+)是您可以控制 URL 参数的地方。如果您认为字符串中可以包含单词 http,请将其修改为:(https?://%S+)以及其他类似的可能性。

于 2013-08-19T06:33:25.103 回答