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

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

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

 

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

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

тема: Выбор ссылок по домену
 
 автор: TTN   (14.03.2011 в 16:20)   письмо автору
 
 

Задача: имеется n='lenta.ru'
Выбрать из текста все ссылки формата http://www[ . . .]lenta.ru/[. . .]
т.е. валидные:
http://www.sport.lenta.ru
http://www.lenta.ru/new/

  Ответить  
 
 автор: TTN   (14.03.2011 в 16:36)   письмо автору
 
   для: TTN   (14.03.2011 в 16:20)
 

Что-то такое получилось
@"http:\\\\www\..*\" + n + @".*"

  Ответить  
 
 автор: cheops   (14.03.2011 в 16:46)   письмо автору
 
   для: TTN   (14.03.2011 в 16:36)
 

>.*
Если регулярные выражения жадные, то эта последовательность будет соответствовать подстроке от первого http://, до последней двойной кавычки (кстати, иногда для обрамления адресов используются одиночные кавычки). Возможно стоит заменить на ".*?"

  Ответить  
 
 автор: TTN   (14.03.2011 в 17:05)   письмо автору
 
   для: TTN   (14.03.2011 в 16:36)
 

Правка:
"http:\/\/www\.*\" + n + @".*(?=\/\"")"
Подскажите, как исключить строки, содержащие "redirect"

  Ответить  
 
 автор: cheops   (14.03.2011 в 16:42)   письмо автору
 
   для: TTN   (14.03.2011 в 16:20)
 

Можно начать отталкиваться от следующего скрипта (если будете использовать в другом языке программирования, учитывайте, что тут "жадные" регулярные выражения)
<?php
  $text 
"Задача: имеется n='lenta.ru'
Выбрать из текста все ссылки формата http://www[ . . .]lenta.ru/[. . .]
т.е. валидные:
http://www.sport.lenta.ru
http://www.lenta.ru/new/"
;
  
$pattern "|http://www[-0-9a-z.]+lenta\.ru[^\s\"\']*|i";
  
preg_match_all($pattern$text$out);
  echo 
"<pre>";
  
print_r($out);
  echo 
"</pre>";
?>

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

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