我正在尝试使用正则表达式从“http://domain.com/some-more-path”获取“域名”:
/(.*)(http|https):\/\/(.*)(\/)(.*)/ and then $3
我的问题是“域名”,而不是“域名”,我获得了“域/更多路径”。 我做错了什么?
答案 0 :(得分:1)
也许这样:
/([^:]*):\/\/([^\/]*)(.*)/
现在$ 2应该只是一个域名。
答案 1 :(得分:0)
更改
/(.*)(http|https):\/\/(.*)(\/)(.*)/
到
/(.*)(http|https):\/\/(.*?)(\/)(.*)/
问题在于.*
部分。 *
是一个贪婪的量词,会消耗尽可能多的字符。如果你在?
后面加*
,你就可以将限定符的行为转换为非贪婪(即它只消耗所需数量的字符)。