Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Помогите написать регулярку
Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
2 koras, то что стоит в [] выдает только 1 символ поэтому твоя регулярка найдет
и
hhhhhhh и ttttttt и /////// и ::::::: и много чего еще
только не найдет само http://
с остальными квадратными скобками аналогично.
2 Gurina
что бы написать регулярку для тебя желательно еще знать ограничения на
субдомен, домен, ник_юзера. Какие символы могут входить и ограничение на длинну
koras
Отправлено: 11 Октября, 2009 - 16:12:40
Частый гость
Покинул форум
Сообщений всего: 224
Дата рег-ции: Окт. 2009
Помог: 0 раз(а)
Я просто дописал свою регулярку которая работает и в полне успешно.
[\.\-_a-zA-Z0-9]{1,100}[.]{1}[\.A-Za-z0-9]{2,4}
вытаскивает с текста домен от 1 уровня и выше. Обычно регулярку я сразу же проверяю на месте.
Цитата:
что бы написать регулярку для тебя желательно еще знать ограничения на
субдомен,
написал выше
ник_юзера. Какие символы могут входить и ограничение на длинну
Согласен, но одно но. Здесь и так видно что ник пользователя будет идти после домена и до слеша. То есть все символы английского алфавита от конца зоны.
Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Долго объяснять... сейчас нету времени
но под регулярку
"/[http:\/\/]{7}/
подойдут такие строки как 'hh/:ppt' 'ppp:ttt' '//:://p' и еще дофига строг не равных http:// но удовлетворяющих регулярке.
koras
Отправлено: 11 Октября, 2009 - 17:46:27
Частый гость
Покинул форум
Сообщений всего: 224
Дата рег-ции: Окт. 2009
Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Помог: 16 раз(а)
!http://subdomen\.domen\.ru/user_name[^"]*!m - эта регулярка рассчитана на текст подобного рода: href="http://subdomen.domen.ru/user_nam/sdgdgd/fsgdfg/".
В результате получим http://subdomen.domen.ru/user_nam/sdgdgd/fsgdfg/.
!http://[\w\d]+?\.[\w\d]+?\.ru/[^"]+!m - аналог предыдущего, но с той разницей что домены и юзер неизвестны.
Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009
Помог: 16 раз(а)
хм.. тут можно использовать функцию preg_grep('!info|\?get!', $arrResults, PREG_GREP_INVERT); к полученному массиву с ссылками. Она, в представленной реализации, исключает все ссылки в которых содержится info или ?get и возвращает новый массив. Вроде должно сработать...)
----- армия.. самое убогое место
Gurina
Отправлено: 15 Октября, 2009 - 00:11:11
Новичок
Покинул форум
Сообщений всего: 26
Дата рег-ции: Окт. 2009
if($ank!="http://субдомен.домен.ru/help/" and $ank!="http://субдомен.домен.ru/index/")
{
// обработчик
}
Я вот так пока решила, не знаю насколько это правильно... и производительно... но работает..
isle
Отправлено: 25 Октября, 2009 - 06:28:37
Гость
Покинул форум
Сообщений всего: 111
Дата рег-ции: Окт. 2009 Откуда: Казахстан, Алматы
Помог: 0 раз(а)
Товарищи-программисты, у меня почти аналогичный случай, хочу вытащить из переменной адрес, но никак не выходит, если не сложно, помогите, пожалуйста, нигде загуглить не выходит.
есть переменная, допустим $url, которая может содержать, например, такой адрес:
Я хочу получить только домен и, если есть, то папку блога, но без лишних символов. Например, должно получиться как-то так (без "http://", "www", третьей вложенной папки и всяких слешей):
subdomaim.domaim.com/blog
К сожалению, пример 3 (http://www.php.su/functions/?preg-match) работает, но не обрезает левые "www.@ и почему-то срезает вложенную папку блога.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.