2013-04-09 2 views
0

По какой-то причине я всегда застрял в создании чего-либо из чрезвычайно простых регулярных выражений.Основные регулярные выражения для

Я пытаюсь сделать регулярное выражение, что вид выглядит как URL. Мне нужна только проверка.

Я бы хотел, чтобы он соответствовал следующим шаблонам, где X является «чем-то».

X://X.X

X://X.X... т.д.

X.X

X.X... и т.д.

Если строка содержит один из этих шаблонов, достаточно проверить для меня. Таким образом, URL-адрес www.example.com:8888 по-прежнему будет соответствовать. Я пробовал много разных комбинаций REGEX с preg_match и, похоже, не может заставить себя вести себя так, как я этого хочу. Я консультировался со многими другими вопросами REGEX по SO, но мои чтения мне не помогли.

Любая помощь? Я буду рад предоставить вам дополнительную информацию, если вы хотите, но я не знаю, что еще вам понадобится.

+1

http://stackoverflow.com/questions/833469/regular-expression-for-url –

ответ

2

Это требует практики, но вот один, что я сделал с помощью регулярных выражений тестера (http://www.regextester.com/), чтобы проверить мою картину:

^.+(:\/\/|\.)([a-zA-Z0-9]+\.)+.+ 

Мой подход медленно строить свою картину с самого начала и добавить по одной штуке в время. Эта чит-карта чрезвычайно полезна для запоминания http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/, что все такое.

В основном шаблон начинается в начале строки и проверяет любые символы, за которыми следует либо: // или. затем проверяет группировки букв и цифр, за которыми следует a. заканчивая любым количеством символов.

Возможно, шаблон можно улучшить с помощью группировок, чтобы не передавать недопустимые символы. Но эта была быстрой и грязной. Вы могли бы заменить первый и последний . символами, которые были бы действительны.

UPDATE

За комментариями здесь обновленная модель:

^.+?(:\/\/|\.)?([a-zA-Z0-9]+?\.)+.+ 
+0

Жадность '+', вероятно, будет в конечном итоге соответствовать больше, чем требуется. –

+0

Спасибо, но это на самом деле не работает для чего-то вроде 'google.com' для меня. Должно ли это или это, вероятно, моя вина? – Rell3oT

+0

@ Rell3oT, нет, он не соответствует google.com. И в другом комментарии есть некоторые проблемы с жадностью. – Schleis

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