regex для URL включая строку запроса

Я думал, что это будет простым поиском Google, но по-видимому нет. Что такое regex, который я могу использовать в C# для парсинга URL включая какую-либо строку запроса из большего текста? Я провел много времени и нашел много примеров, которые не включают строку запроса. И я не могу использовать Систему. URI, потому что это принимает Вас уже, имеет URL... Я должен найти его в сопроводительном тексте.

6
задан JoelFan 26 February 2010 в 16:40
поделиться

3 ответа

Это должно дать что угодно (не стесняйтесь добавлять дополнительные протоколы):

@"(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.

Очень трудно получить каждый случай без более четких границ.

2
ответ дан 17 December 2019 в 22:12
поделиться

В RegexLib есть много полезного...

http://regexlib.com/Search.aspx?k=querystring

0
ответ дан 17 December 2019 в 22:12
поделиться

Взгляните на класс построителя QueryString этого парня -

http://weblogs.asp.net/bradvincent/archive/2008/10/27/helper-class-querystring-builder-chainable.aspx

Microsoft также имеет UriBuilder, который может вам помочь -

http://msdn.microsoft.com/en-us/library/system.uribuilder.query.aspx

-1
ответ дан 17 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: