Что не так с таким веб-сайтом, как RegExLib.com (раздел "url")?
Вы должны найти то, что вам нужно, и проверить это там сами.
В любом случае, это регулярное выражение проверяет, что вы хотите, и исключает то, что вы не хотите.
(?ms)^(https?|ftp|telnet):\/\/((?:(?:(?=[^\r\n]*@)\w|-)+(?:(?::)(?:\w|-)+)?)?)@?((?:(?:(?:\w|-)+)\.)+(?:\w|-)+)(\:\d+)?((?:(?:/(?:\w|-)+(?:\.(?:\w|-)+)?)+)?)((?:\?(?:(?:\w|-)+\=(?:\w|[\.\-\*\:\+\#])*\&?)+)*)$
с:
- группа 1: протокол
- группа 2: имя пользователя [: пароль]
- группа 3: домен (www.xxx)
- группа 4: пусто
- группа 5: адрес (XX / ггг / zzzz)
- группа 6: параметры (? Key1a = значение1a & key2a = значение2a? Key1b = значение1b & key2b = значение2b ...)