5

我需要从Lua 字符串变量中的four.fiveURL () 中提取域 () 。one.two.three.four.five

我似乎无法在 Lua 中找到执行此操作的功能。

编辑:

当 URL 到达我的手中时,这些http东西已经被剥离了。所以,一些例子是:

a) safebrowsing.google.com 
b) i2.cdn.turner.com 
c) powerdns.13854.n7.nabble.com 

所以我的结果应该是:

a) google.com
b) turner.com
c) nabble.com
4

3 回答 3

6

这应该有效:

local url = "foo.bar.google.com"
local domain = url:match("[%w%.]*%.(%w+%.%w+)")
print(domain)       

输出:google.com

该模式在末尾[%w%.]*%.(%w+%.%w+)的第二个点之后查找内容。.

于 2013-09-13T01:58:44.257 回答
4
local url = "http://foo.bar.com/?query"
print(url:match('^%w+://([^/]+)')) -- foo.bar.com

此模式'^%w+://([^/]+)'表示: ^ 从行首开始,取 %w+ 一个或多个字母数字字符(这是协议),然后是 ://,然后是 [^/]+ 1 个或多个斜杠以外的字符并返回(捕获)这些字符作为结果。

于 2013-09-13T00:15:20.107 回答
0

使用保罗的答案来提取像 1.2.3.4.4.5 这样的域

本地 url = " http://foo.bar.com/?query " 本地域 = url:match('^%w+://([^/]+)'))

然后使用“拆分”方法为零件构建数组

http://lua-users.org/wiki/SplitJoin

喜欢

local arr = split(domain, '%.') --转义点,因为它是“模式”的一部分

接下来你可以使用最新的两个:arr[#arr], arr[#arr-1]

于 2016-04-09T14:08:21.923 回答