Как правило, лучшее предложение, которое я могу сделать для анализа URL с помощью регулярных выражений: не .
Ваше время много много лучше потратить на поиск существующей библиотеки для вашего языка, посвященной задаче обработки URL.
Он сработает во всех крайних случаях, будет полностью RFC-совместимым, не будет содержать ошибок, безопасен и будет иметь отличный пользовательский интерфейс, так что вы сможете просто высосать биты, которые вам действительно нужны.
В вашем случае, предложенный способ его обработки, используя вашу библиотеку URL, извлекает элементы s и затем явно работает с ними.
Таким образом, в большинстве случаев вам придется иметь дело с самим путем, и вам не придется слишком волноваться о его
http://site.com/
https://site.com/
http://site.com:80/
http://www.site.com/
Если вы действительно не хотите.
Для «Пути» вы можете даже использовать сплиттер (или специальный анализатор пути), чтобы сначала разбить путь на элементы, просто чтобы быть уверенным.