我有以下网址。
http://localhost:4000/path?query=foo
http://localhost:4000/
http://localhost
http://localhost/
我只想返回host
部分。老实说,我不在乎这样的网址
http://localhost:abcd/
http://localhost:abcd/path?query=foo
因为可以保证正确的URL。
我以某种方式设法在rubular上为其得出了一些模式
但是,这涉及超前技术。我如何应用超前技术。 看起来像这样
^https?:\/\/(.+)(?=[\/|$])
但是有两个问题
lua
匹配http://localhost
,正则表达式不是完整的证明(请注意在末尾缺少斜杠)这是我的问题。
我该如何解决?
答案 0 :(得分:1)
模式匹配的关键是避免特殊情况,例如可选的定界符。将/
附加到字符串可以简化任务。
尝试以下代码:
function host(s)
return (s.."/"):match("://(.-)/")
end
function test(s)
print(s,host(s))
end
test"http://localhost:4000/path?query=foo"
test"http://localhost:4000/"
test"http://localhost"
test"http://localhost/"