我正在尝试使用正则表达式在Postgres中获取域名。
当我这样做时:
select substring('http://yahoo.com' from 'http://(.+?)/|');
返回空字符串。 我希望它返回http://yahoo.com
如果我执行以下操作,它会起作用,但并非所有网址都以尾部斜杠结尾。
select substring('http://yahoo.com/' from 'http://(.+?)/|');
答案 0 :(得分:2)
你可以写:
select substring('http://yahoo.com' from 'http://[^/]+/?');
将匹配http://
,加上域名(/
以外的所有字符),加上尾随/
(如果有)。
(免责声明:未经测试。)
答案 1 :(得分:-1)
select substring('http://yahoo.com' from 'http://(.+?)/?|');
请注意最后?
后的/
,表示它是可选的。