This should work:
local url = "foo.bar.google.com"
local domain = url:match("[%w%.]*%.(%w+%.%w+)")
print(domain)
Output:google.com
The pattern [%w%.]*%.(%w+%.%w+)
looks for the content after the second dot .
from the end.
문제
I need to extract domain (four.five
) from URL (one.two.three.four.five
) in a Lua string variable.
I can't seem to find a function to do this in Lua.
EDIT:
By the time the URL gets to me, the http
stuff has already been stripped off. So, some examples are:
a) safebrowsing.google.com
b) i2.cdn.turner.com
c) powerdns.13854.n7.nabble.com
so my result should be:
a) google.com
b) turner.com
c) nabble.com
해결책
This should work:
local url = "foo.bar.google.com"
local domain = url:match("[%w%.]*%.(%w+%.%w+)")
print(domain)
Output:google.com
The pattern [%w%.]*%.(%w+%.%w+)
looks for the content after the second dot .
from the end.
다른 팁
local url = "http://foo.bar.com/?query"
print(url:match('^%w+://([^/]+)')) -- foo.bar.com
This pattern '^%w+://([^/]+)'
means: ^ from the beginning of the line, take %w+ one or more alphanumeric characters (this is the protocol), then ://, then [^/]+ 1 or more characters other than slash and return (capture) these characters as the result.
Use Paul's answer to extract domain like 1.2.3.4.4.5
local url = "http://foo.bar.com/?query" local domain = url:match('^%w+://([^/]+)'))
and next use of of "split" methods to build array for parts
http://lua-users.org/wiki/SplitJoin
like
local arr = split(domain, '%.') --escaped point because it is part of "patterns"
Next you can use latest two: arr[#arr], arr[#arr-1]