Это должно быть что угодно (добавьте дополнительные протоколы):
@"(https?|ftp|file)\://[A-Za-z0-9\.\-]+(/[A-Za-z0-9\?\&\=;\+!'\(\)\*\-\._~%]*)*"
Настоящая трудность - найти конец. Таким образом, этот шаблон основан на поиске недопустимого символа. Это может быть что угодно, кроме букв, цифр, дефиса или точки до конца имени домена, или что-либо, кроме этих плюс косая черта (/), вопросительный знак (?), Амперсанд (&), знак равенства (=), точка с запятой (;), знак плюс (+), восклицательный знак (!), апостроф / одинарная кавычка ('), открывающие / закрывающие скобки, звездочка (*), подчеркивание (_), тильда (~) или знак процента (% ) после доменного имени.
Обратите внимание, что это позволит использовать недопустимые URL-адреса, такие как
http://../
И он будет подбирать вещи после URL, например, в этой строке:
Может быть, вам стоит попробовать http://www.google.com.
Где "http://www.google.com."
(с завершающим периодом) будет соответствовать.
Также будет пропущен URL-адрес, который не начинается со спецификации протокола (в частности, протоколы в первом наборе скобок. Например, он пропустит URL-адрес в этой строке:
Возможно, вам стоит попробовать www.google.com.
Очень трудно получить каждый случай без каких-либо более четко определенных границ.