1

我正在尝试使用正则表达式从“http://domain.com/some-more-path”获取“域”:

/(.*)(http|https):\/\/(.*)(\/)(.*)/ and then $3

我的问题不是“域”,而是“域/更多路径”。我究竟做错了什么?

4

2 回答 2

1

也许这样:

/([^:]*):\/\/([^\/]*)(.*)/

现在 $2 应该只是一个域。

于 2012-09-19T13:37:10.807 回答
0

改变

/(.*)(http|https):\/\/(.*)(\/)(.*)/

/(.*)(http|https):\/\/(.*?)(\/)(.*)/

问题是.*部分。*是一个贪婪的量词,会消耗尽可能多的字符。如果您在?后面加上 a *,则将限定符的行为切换为非贪婪(即它只消耗所需的字符数)。

于 2012-09-19T13:37:27.203 回答