RegexBuddy đưa ra cảnh báo này về '?'
đầu tiên
và nếu bạn xóa nó, nó có vẻ hoạt động, tức là ^(.+[^\/:])(?=[?\/]|$)
tuy nhiên, nếu bạn đang cố gắng phân tích cú pháp baseurl mà regex sẽ không hoạt động. Sử dụng cái này thay thế:
select regexp_replace('....', '^(.*:)//([a-z\-.]+)(:[0-9]+)?(.*)$', '\2')