Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Регулярное выражение сложных URL.
 
 автор: muravey   (25.06.2011 в 07:55)   письмо автору
 
 

Доброго всем времени суток!

Предлагаю вашему вниманию на дополнения и корректировки регулярное выражение сложного URL типа ссылки на этот пост

http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=81361&page=1

Сначала разделим сложное на простое, потом соединим все вместе:

1. http://, https://, может быть, а может нет ([url]www.softtime.ru/forum/read.php?id_forum=6&id_theme=81361&page=1[/url])

(https?:\/\/)?


2. www., может быть , а может нет ([url]softtime.ru/forum/read.php?id_forum=6&id_theme=81361&page=1[/url], http://softtime.ru/forum/read.php?id_forum=6&id_theme=81361&page=1)

(www\.)?


3. softtime.ru, softtime.biz, софттайм.рф, info.softtime.ru, инфо.софттайм.рф

[-а-яa-z0-9_\.]{2,}\.(рф|[a-z]{2,6})


4. /forum/ или read.php или /forum/read.php

((\/[-а-яa-z0-9_]\/|[-а-яa-z0-9_]{2,}\.(рф|[a-z]{2,6}))|(\/[-а-яa-z0-9_]\/[-а-яa-z0-9_]{2,}\.(рф|[a-z]{2,6})))


5. ?id_forum=6 может и не быть

(\?[a-z0-9_]{2,}=[-0-9]{1,})?


6. &id_theme=81 может и не быть

(\&[a-z0-9_]{2,}=[-0-9]{1,})?


Итог:

(https?:\/\/)?(www\.)?[-а-яa-z0-9_\.]{2,}\.(рф|[a-z]{2,6})((\/[-а-яa-z0-9_]\/|[-а-яa-z0-9_]{2,}\.(рф|[a-z]{2,6}))|(\/[-а-яa-z0-9_]\/[-а-яa-z0-9_]{2,}\.(рф|[a-z]{2,6})))(\?[a-z0-9_]{2,}=[-0-9]{1,})?(\&[a-z0-9_]{2,}=[-0-9]{1,})?/gi


Вот такое выражение, жду поправок и комментариев!

  Ответить  
 
 автор: muravey   (25.06.2011 в 09:14)   письмо автору
 
   для: muravey   (25.06.2011 в 07:55)
 

О, сколько ошибок! Я исправил. А вы?

  Ответить  
 
 автор: muravey   (25.06.2011 в 10:01)   письмо автору
 
   для: muravey   (25.06.2011 в 09:14)
 

Работает, но еще нужно дорабатывать:

/(https?:\/\/)?(www\.)?([-а-яa-z0-9_\.]{2,}\.(рф|[a-z]{2,6}))((\/[-а-яa-z0-9_]{1,}\/)|(\/[-а-яa-z0-9_]{1,}\/)([-а-яa-z0-9_]{2,}\.(рф|[a-z]{2,6})))?((\?[a-z0-9_]{2,}=[-0-9]{1,})?((\&[a-z0-9_]{2,}=[-0-9]{1,}){1,})?)?/i


Какие нибудь есть варианты?

  Ответить  
 
 автор: muravey   (25.06.2011 в 11:17)   письмо автору
 
   для: muravey   (25.06.2011 в 10:01)
 

Ну сейчас все!


/(https?:\/\/)?(www\.)?([-а-яa-z0-9_\.]{2,}\.)(рф|[a-z]{2,6})((\/[-а-яa-z0-9_]{1,})?\/?([a-z0-9_-]{2,}\.[a-z]{2,6})?(\?[a-z0-9_]{2,}=[-0-9]{1,})?((\&[a-z0-9_]{2,}=[-0-9]{1,}){1,})?)/i 


Пользуйтесь для валидации сложных URL ваших форм!

  Ответить  
 
 автор: cgw   (30.01.2013 в 17:46)
 
   для: muravey   (25.06.2011 в 11:17)
 

Русские буквы видно только если такrnа-яА-ЯёЁцушщхъфырэчстьюrnrn/(https?:\/\/)?(www\.)?([-а-яa-zёЁцушщхъфырэчстью0-9_\.]{2,}\.)(рф|[a-z]{2,6})((\/[-а-яёЁцушщхъфырэчстьюa-z0-9_]{1,})?\/?([a-z0-9_-]{2,}\.[a-z]{2,6})?(\?[a-z0-9_]{2,}=[-0-9]{1,})?((\&[a-z0-9_]{2,}=[-0-9]{1,}){1,})?)/i

  Ответить  
 
 автор: cgw   (30.01.2013 в 17:48)
 
   для: cgw   (30.01.2013 в 17:46)
 

Русские буквы видно только если так

а-яА-ЯёЁцушщхъфырэчстью


/(https?:\/\/)?(www\.)?([-а-яa-zёЁцушщхъфырэчстью0-9_\.]{2,}\.)(рф|[a-z]{2,6})((\/[-а-яёЁцушщхъфырэчстьюa-z0-9_]{1,})?\/?([a-z0-9_-]{2,}\.[a-z]{2,6})?(\?[a-z0-9_]{2,}=[-0-9]{1,})?((\&[a-z0-9_]{2,}=[-0-9]{1,}){1,})?)/i

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования