URL Regex, как обеспечить соблюдение .tld?C#

Место общения программистов C#
Ответить
Anonymous
 URL Regex, как обеспечить соблюдение .tld?

Сообщение Anonymous »

В настоящее время я пытаюсь проверить URL-адреса. У меня есть следующее регулярное выражение:

Код: Выделить всё

^(?:https?:\/\/)?(?:www\.)?(?![.-])[a-zA-Z0-9]+(?:\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,}(?!\.\.)(\/(?!\/)[^\s]*)?$
Это правильно соответствует:

Код: Выделить всё

example.com
www.example.com
http://example.com
https://www.example.com
example.com/exam1/exam.php
example.com/exam
http://www.example.com.be/example-web-site
http://www.example
Вот те, которым он не должен соответствовать, это правильно:

Код: Выделить всё

.example.com
www.example.-com
www.example.com//ex
www.example..com
Однако он соответствует этим двум последним, хотя не должен

Код: Выделить всё

www.example/ex
www.example
Я пытался найти решение, но не смог найти, как сделать так, чтобы эти два не совпадали, не нарушая при этом остальные.

Подробнее здесь: https://stackoverflow.com/questions/791 ... nforce-tld
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»