3

我正在尝试使用正则表达式在 Postgres 中获取域名。

当我做:

select substring('http://yahoo.com' from 'http://(.+?)/|');

它返回空字符串。我希望它返回http://yahoo.com

如果我执行以下操作,它会起作用,但并非所有网址都以斜杠结尾。

select substring('http://yahoo.com/' from 'http://(.+?)/|');
4

2 回答 2

2

你可以写:

select substring('http://yahoo.com' from 'http://[^/]+/?');

它将匹配http://,加上域(除 之外的所有字符/),加上一个尾随(/如果存在)。

(免责声明:未经测试。)

于 2013-07-27T00:24:35.447 回答
-1
select substring('http://yahoo.com' from 'http://(.+?)/?|');

请注意?最后一个之后,/这意味着它是可选的。

于 2013-07-27T00:23:56.943 回答