如何从 URL 中提取域

Xi *_*Vix 5 string dns lua lua-patterns

我需要four.fiveone.two.three.four.fiveLua 字符串变量中的URL ( ) 中提取域 ( ) 。

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

编辑:

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

a) safebrowsing.google.com 
b) i2.cdn.turner.com 
c) powerdns.13854.n7.nabble.com 
Run Code Online (Sandbox Code Playgroud)

所以我的结果应该是:

a) google.com
b) turner.com
c) nabble.com
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 6

这应该有效:

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

输出:google.com

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


Pau*_*nko 5

local url = "http://foo.bar.com/?query"
print(url:match('^%w+://([^/]+)')) -- foo.bar.com
Run Code Online (Sandbox Code Playgroud)

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

  • 提供您尝试解析的 URL 示例(最好是多个)。 (2认同)