如果我有一个字符串,例如
这是一个网站,它在
http://www.abc.com/post_id?id=123&key=456
,请访问它并告诉我 知道。感谢
如何在Lua中解析这个字符串,这样我就可以获得三个子字符串:
字符串1 - http(s)url之前的文本
字符串2 - http(s)url本身(包含所有参数)
字符串3 - http(s)url后面的文本
请注意“http”之前可能没有空格。感谢。
答案 0 :(得分: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?%S+)
的中间部分可以控制您的网址参数。如果您认为字符串中可以包含单词http,请将其修改为:(https?://%S+)
以及类似的其他可能性。