2013-07-15 4 views
4

В настоящее время я работаю над созданием регулярного выражения, которое будет принимать URL-адреса и имена хостов.Регулярное выражение '<>' validation

Так следующее должно быть принято:

google 
google.com 
www.google.com 
http://google.com 
http://www.google.com 

Однако то, что не должно быть принято в:

<xml> <html> 

Выражение У меня до сих пор:

([a-zA-Z0-9])|((http(s)?://)?([\w-]+\.)+[\w-]+(/[\w- ;,./?%&=]*)?) 

Однако эта часть выражения: ([a-zA-Z0-9])
совпадений на <xml> и <html>

Любое предложение относительно того, что мне здесь не хватает?

+3

Какой язык вы используете? Большинство языков будут иметь встроенные функции проверки URL-адресов, поэтому вам может и не понадобиться самостоятельно их создавать. –

+0

@Fiona Вы имеете в виду литеральные строки '' и '', или вы имеете в виду html и xml теги? –

+0

http://www.regular-expressions.info/anchors.html? – Bergi

ответ

5

Вам нужно добавить начало (^) и конец ($) якоря к вашему выражению, чтобы гарантировать, что только шаблон, указанный допускается:

^([a-zA-Z0-9]+)|((https?://)?([\w-]+\.)+[\w-]+(/[-\w ;,./?%&=]*)?)$ 
+1

И часть '([a-zA-Z0-9])' соответствует только одному символу, поэтому после добавления^и $, которые также необходимо будет исправить: '([a-zA-Z0-9] +) ' –

+0

@BrianStephens Спасибо, я исправил это и очистил некоторые другие относительно незначительные моменты. –

Смежные вопросы