Regex IP для проблемы с URL - PullRequest
       2

Regex IP для проблемы с URL

1 голос
/ 21 августа 2010
const string strRegex = @"^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}"
   "(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$";
Regex rgxUrl = new Regex(strRegex, RegexOptions.Compiled
   |RegexOptions.IgnoreCase);

Если мой URL-адрес http://89.212.232.65, то это регулярное выражение для проверки URL не выполняется. Как я должен изменить регулярное выражение, чтобы оно также работало для IP-адресов?

[Я взял на себя редактирование с определением strRegex, которое является одной непрерывной константой -msw]

Ответы [ 3 ]

1 голос
/ 21 августа 2010

этот . в +.[a-zA-Z]{2,3} не имеет смысла, вы, вероятно, имеете в виду \.

Это хорошо работает для первой части:

/^(https?|ftp):\/\/([-\w.]+\.[a-zA-Z]{2,3})|((\d{1,3}\.){3}\d{1,3})/

(PCRE)

0 голосов
/ 21 августа 2010

Предположительно, вы проводите какую-то проверку? Или пытаетесь извлечь имя хоста? Вам не нужно регулярное выражение для этого. Используйте классы Uri или UriBuilder

0 голосов
/ 21 августа 2010
const string strRegex = 
    @"^(http|https|ftp)\://" +
    @"(([a-zA-Z0-9-.]+\.[a-zA-Z]{2,3})|([0-2]*\d*\d\.[0-2]*\d*\d\.[0-2]*\d*\d\.[0-2]*\d*\d))" +
    @"(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9-._\?\,\'/\+&%\$#\=~])*[^.\,)(\s]$";
Regex rgxUrl = new Regex(strRegex, RegexOptions.Compiled | RegexOptions.IgnoreCase);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...