我需要从Lua字符串变量中的URL(four.five
)中提取域名(one.two.three.four.five
)。
我似乎找不到在Lua中执行此操作的功能。
编辑:
当网址到达我的时候,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
答案 0 :(得分:4)
local url = "http://foo.bar.com/?query"
print(url:match('^%w+://([^/]+)')) -- foo.bar.com
此模式'^%w+://([^/]+)'
表示:^从行的开头,取%w +一个或多个字母数字字符(这是协议),然后://,然后是[^ /] + 1个或更多字符除了斜杠和返回(捕获)这些字符作为结果。
答案 1 :(得分:3)
这应该有效:
local url = "foo.bar.google.com"
local domain = url:match("[%w%.]*%.(%w+%.%w+)")
print(domain)
输出:google.com
模式[%w%.]*%.(%w+%.%w+)
在结尾处第二个点.
之后查找内容。
答案 2 :(得分:0)
使用Paul的答案提取域名,如1.2.3.4.4.5
local url =" http://foo.bar.com/?query" local domain = url:match(' ^%w +://([^ /] +)'))
以及" split"的下一次使用为部件构建数组的方法
http://lua-users.org/wiki/SplitJoin
像
local arr = split(domain,'%。') - 为了点,因为它是"模式的一部分"
接下来你可以使用最新的两个:arr [#arr],arr [#arr-1]